diff --git a/src/amd/common/ac_rgp.h b/src/amd/common/ac_rgp.h index 118fd9d5e90..83ddb217099 100644 --- a/src/amd/common/ac_rgp.h +++ b/src/amd/common/ac_rgp.h @@ -52,6 +52,7 @@ struct rgp_shader_data { uint8_t *code; uint32_t vgpr_count; uint32_t sgpr_count; + uint32_t scratch_memory_size; uint64_t base_address; uint32_t elf_symbol_offset; uint32_t hw_stage; diff --git a/src/amd/common/ac_rgp_elf_object_pack.c b/src/amd/common/ac_rgp_elf_object_pack.c index e70954ce467..27d06f5c6a3 100644 --- a/src/amd/common/ac_rgp_elf_object_pack.c +++ b/src/amd/common/ac_rgp_elf_object_pack.c @@ -149,7 +149,7 @@ ac_rgp_write_msgpack(FILE *output, ac_msgpack_add_fixstr(&msgpack, hw_stage_string[ record->shader_data[i].hw_stage]); - ac_msgpack_add_fixmap_op(&msgpack, 3); + ac_msgpack_add_fixmap_op(&msgpack, 4); ac_msgpack_add_fixstr(&msgpack, ".entry_point"); ac_msgpack_add_fixstr(&msgpack, hw_stage_symbol_string[ record->shader_data[i].hw_stage]); @@ -161,6 +161,11 @@ ac_rgp_write_msgpack(FILE *output, ac_msgpack_add_fixstr(&msgpack, ".vgpr_count"); ac_msgpack_add_uint(&msgpack, record->shader_data[i].vgpr_count); + + ac_msgpack_add_fixstr(&msgpack, ".scratch_memory_size"); + ac_msgpack_add_uint(&msgpack, + record->shader_data[i].scratch_memory_size); + } /* 5 */ diff --git a/src/amd/vulkan/layers/radv_sqtt_layer.c b/src/amd/vulkan/layers/radv_sqtt_layer.c index 60219e500b9..3bf70d00d9a 100644 --- a/src/amd/vulkan/layers/radv_sqtt_layer.c +++ b/src/amd/vulkan/layers/radv_sqtt_layer.c @@ -892,6 +892,7 @@ radv_add_code_object(struct radv_device *device, struct radv_pipeline *pipeline) record->shader_data[i].code = code; record->shader_data[i].vgpr_count = shader->config.num_vgprs; record->shader_data[i].sgpr_count = shader->config.num_sgprs; + record->shader_data[i].scratch_memory_size = shader->config.scratch_bytes_per_wave; record->shader_data[i].base_address = va & 0xffffffffffff; record->shader_data[i].elf_symbol_offset = 0; record->shader_data[i].hw_stage = radv_mesa_to_rgp_shader_stage(pipeline, i);