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