diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2021-09-16 13:15:10 +0200 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-09-17 08:05:36 +0000 |
commit | c952655693fd319437a9bdb9b5fd7b47a70b1d95 (patch) | |
tree | 2a21b6cbab797bad297e991789abcf003ef310e4 | |
parent | d29c381c64ec435a97f8eeee41584e2802e569ab (diff) |
ac/rgp, radv: report wave size for shaders
Fills the "Wave mode" in "Pipelines" for GPUs that supports Wave32.
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>
-rw-r--r-- | src/amd/common/ac_rgp.h | 1 | ||||
-rw-r--r-- | src/amd/common/ac_rgp_elf_object_pack.c | 5 | ||||
-rw-r--r-- | src/amd/vulkan/layers/radv_sqtt_layer.c | 1 |
3 files changed, 6 insertions, 1 deletions
diff --git a/src/amd/common/ac_rgp.h b/src/amd/common/ac_rgp.h index 83ddb217099..694aade80db 100644 --- a/src/amd/common/ac_rgp.h +++ b/src/amd/common/ac_rgp.h @@ -53,6 +53,7 @@ struct rgp_shader_data { uint32_t vgpr_count; uint32_t sgpr_count; uint32_t scratch_memory_size; + uint32_t wavefront_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 27d06f5c6a3..4f1961ba025 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, 4); + ac_msgpack_add_fixmap_op(&msgpack, 5); ac_msgpack_add_fixstr(&msgpack, ".entry_point"); ac_msgpack_add_fixstr(&msgpack, hw_stage_symbol_string[ record->shader_data[i].hw_stage]); @@ -166,6 +166,9 @@ ac_rgp_write_msgpack(FILE *output, ac_msgpack_add_uint(&msgpack, record->shader_data[i].scratch_memory_size); + ac_msgpack_add_fixstr(&msgpack, ".wavefront_size"); + ac_msgpack_add_uint(&msgpack, + record->shader_data[i].wavefront_size); } /* 5 */ diff --git a/src/amd/vulkan/layers/radv_sqtt_layer.c b/src/amd/vulkan/layers/radv_sqtt_layer.c index 3bf70d00d9a..32bec940873 100644 --- a/src/amd/vulkan/layers/radv_sqtt_layer.c +++ b/src/amd/vulkan/layers/radv_sqtt_layer.c @@ -893,6 +893,7 @@ radv_add_code_object(struct radv_device *device, struct radv_pipeline *pipeline) 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].wavefront_size = shader->info.wave_size; 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); |