xref: /aosp_15_r20/external/mesa3d/src/amd/common/ac_binary.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker  * Copyright 2014 Advanced Micro Devices, Inc.
3*61046927SAndroid Build Coastguard Worker  *
4*61046927SAndroid Build Coastguard Worker  * SPDX-License-Identifier: MIT
5*61046927SAndroid Build Coastguard Worker  */
6*61046927SAndroid Build Coastguard Worker 
7*61046927SAndroid Build Coastguard Worker #ifndef AC_BINARY_H
8*61046927SAndroid Build Coastguard Worker #define AC_BINARY_H
9*61046927SAndroid Build Coastguard Worker 
10*61046927SAndroid Build Coastguard Worker #include <stdbool.h>
11*61046927SAndroid Build Coastguard Worker #include <stddef.h>
12*61046927SAndroid Build Coastguard Worker #include <stdint.h>
13*61046927SAndroid Build Coastguard Worker 
14*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus
15*61046927SAndroid Build Coastguard Worker extern "C" {
16*61046927SAndroid Build Coastguard Worker #endif
17*61046927SAndroid Build Coastguard Worker 
18*61046927SAndroid Build Coastguard Worker struct radeon_info;
19*61046927SAndroid Build Coastguard Worker 
20*61046927SAndroid Build Coastguard Worker struct ac_shader_config {
21*61046927SAndroid Build Coastguard Worker    unsigned num_sgprs;
22*61046927SAndroid Build Coastguard Worker    unsigned num_vgprs;
23*61046927SAndroid Build Coastguard Worker    unsigned num_shared_vgprs; /* GFX10: number of VGPRs shared between half-waves */
24*61046927SAndroid Build Coastguard Worker    unsigned spilled_sgprs;
25*61046927SAndroid Build Coastguard Worker    unsigned spilled_vgprs;
26*61046927SAndroid Build Coastguard Worker    unsigned lds_size; /* in HW allocation units; i.e 256 bytes on SI, 512 bytes on CI+ */
27*61046927SAndroid Build Coastguard Worker    unsigned spi_ps_input_ena;
28*61046927SAndroid Build Coastguard Worker    unsigned spi_ps_input_addr;
29*61046927SAndroid Build Coastguard Worker    unsigned float_mode;
30*61046927SAndroid Build Coastguard Worker    unsigned scratch_bytes_per_wave;
31*61046927SAndroid Build Coastguard Worker    unsigned rsrc1;
32*61046927SAndroid Build Coastguard Worker    unsigned rsrc2;
33*61046927SAndroid Build Coastguard Worker    unsigned rsrc3;
34*61046927SAndroid Build Coastguard Worker };
35*61046927SAndroid Build Coastguard Worker 
36*61046927SAndroid Build Coastguard Worker void ac_parse_shader_binary_config(const char *data, size_t nbytes, unsigned wave_size,
37*61046927SAndroid Build Coastguard Worker                                    const struct radeon_info *info, struct ac_shader_config *conf);
38*61046927SAndroid Build Coastguard Worker 
39*61046927SAndroid Build Coastguard Worker unsigned ac_align_shader_binary_for_prefetch(const struct radeon_info *info, unsigned size);
40*61046927SAndroid Build Coastguard Worker 
41*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus
42*61046927SAndroid Build Coastguard Worker }
43*61046927SAndroid Build Coastguard Worker #endif
44*61046927SAndroid Build Coastguard Worker 
45*61046927SAndroid Build Coastguard Worker #endif /* AC_BINARY_H */
46