ac/rgp, radv: report scratch memory size for shaders

Fills the "Scatch Mem" with "Yes/No" in "Pipelines", this requires
instruction timing to be enabled.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12896>
This commit is contained in:
Samuel Pitoiset 2021-09-16 12:59:42 +02:00 committed by Marge Bot
parent 57c63d7204
commit d29c381c64
3 changed files with 8 additions and 1 deletions

View file

@ -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;

View file

@ -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 */

View file

@ -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);