summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2021-09-16 13:15:10 +0200
committerMarge Bot <eric+marge@anholt.net>2021-09-17 08:05:36 +0000
commitc952655693fd319437a9bdb9b5fd7b47a70b1d95 (patch)
tree2a21b6cbab797bad297e991789abcf003ef310e4
parentd29c381c64ec435a97f8eeee41584e2802e569ab (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.h1
-rw-r--r--src/amd/common/ac_rgp_elf_object_pack.c5
-rw-r--r--src/amd/vulkan/layers/radv_sqtt_layer.c1
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);