diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2021-08-26 09:02:07 +0200 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-10-11 09:47:06 +0000 |
commit | f741c04ed10a5ebaebf786ba5cd8b75581fc08a1 (patch) | |
tree | f7c7d02de8e2e64ee7955ac09a62012e6ed36409 /src/amd/vulkan/radv_query.c | |
parent | 80df2110b1da4849eef7559aa2fb3742cc4e0d27 (diff) |
radv: use get_global_ids() to compute coordinates in meta shaders
This was duplicated everywhere.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12561>
Diffstat (limited to 'src/amd/vulkan/radv_query.c')
-rw-r--r-- | src/amd/vulkan/radv_query.c | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c index af1d4a4a1e2..73d005111a7 100644 --- a/src/amd/vulkan/radv_query.c +++ b/src/amd/vulkan/radv_query.c @@ -149,13 +149,7 @@ build_occlusion_query_shader(struct radv_device *device) nir_ssa_def *dst_buf = radv_meta_load_descriptor(&b, 0, 0); nir_ssa_def *src_buf = radv_meta_load_descriptor(&b, 0, 1); - nir_ssa_def *invoc_id = nir_load_local_invocation_id(&b); - nir_ssa_def *wg_id = nir_load_workgroup_id(&b, 32); - nir_ssa_def *block_size = - nir_imm_ivec4(&b, b.shader->info.workgroup_size[0], b.shader->info.workgroup_size[1], - b.shader->info.workgroup_size[2], 0); - nir_ssa_def *global_id = nir_iadd(&b, nir_imul(&b, wg_id, block_size), invoc_id); - global_id = nir_channel(&b, global_id, 0); // We only care about x here. + nir_ssa_def *global_id = get_global_ids(&b, 1); nir_ssa_def *input_stride = nir_imm_int(&b, db_count * 16); nir_ssa_def *input_base = nir_imul(&b, input_stride, global_id); @@ -290,13 +284,7 @@ build_pipeline_statistics_query_shader(struct radv_device *device) nir_ssa_def *dst_buf = radv_meta_load_descriptor(&b, 0, 0); nir_ssa_def *src_buf = radv_meta_load_descriptor(&b, 0, 1); - nir_ssa_def *invoc_id = nir_load_local_invocation_id(&b); - nir_ssa_def *wg_id = nir_load_workgroup_id(&b, 32); - nir_ssa_def *block_size = - nir_imm_ivec4(&b, b.shader->info.workgroup_size[0], b.shader->info.workgroup_size[1], - b.shader->info.workgroup_size[2], 0); - nir_ssa_def *global_id = nir_iadd(&b, nir_imul(&b, wg_id, block_size), invoc_id); - global_id = nir_channel(&b, global_id, 0); // We only care about x here. + nir_ssa_def *global_id = get_global_ids(&b, 1); nir_ssa_def *input_stride = nir_imm_int(&b, pipelinestat_block_size * 2); nir_ssa_def *input_base = nir_imul(&b, input_stride, global_id); @@ -441,13 +429,7 @@ build_tfb_query_shader(struct radv_device *device) nir_ssa_def *src_buf = radv_meta_load_descriptor(&b, 0, 1); /* Compute global ID. */ - nir_ssa_def *invoc_id = nir_load_local_invocation_id(&b); - nir_ssa_def *wg_id = nir_load_workgroup_id(&b, 32); - nir_ssa_def *block_size = - nir_imm_ivec4(&b, b.shader->info.workgroup_size[0], b.shader->info.workgroup_size[1], - b.shader->info.workgroup_size[2], 0); - nir_ssa_def *global_id = nir_iadd(&b, nir_imul(&b, wg_id, block_size), invoc_id); - global_id = nir_channel(&b, global_id, 0); // We only care about x here. + nir_ssa_def *global_id = get_global_ids(&b, 1); /* Compute src/dst strides. */ nir_ssa_def *input_stride = nir_imm_int(&b, 32); @@ -571,13 +553,7 @@ build_timestamp_query_shader(struct radv_device *device) nir_ssa_def *src_buf = radv_meta_load_descriptor(&b, 0, 1); /* Compute global ID. */ - nir_ssa_def *invoc_id = nir_load_local_invocation_id(&b); - nir_ssa_def *wg_id = nir_load_workgroup_id(&b, 32); - nir_ssa_def *block_size = - nir_imm_ivec4(&b, b.shader->info.workgroup_size[0], b.shader->info.workgroup_size[1], - b.shader->info.workgroup_size[2], 0); - nir_ssa_def *global_id = nir_iadd(&b, nir_imul(&b, wg_id, block_size), invoc_id); - global_id = nir_channel(&b, global_id, 0); // We only care about x here. + nir_ssa_def *global_id = get_global_ids(&b, 1); /* Compute src/dst strides. */ nir_ssa_def *input_stride = nir_imm_int(&b, 8); |