From 4f7e35323731d282cdc348850f64137287902a64 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 6 Nov 2022 15:58:47 -0500 Subject: [PATCH] amd: lower multi-component subdword SSBO loads in NIR MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit because the hw and LLVM only support subdword single-component SSBO loads, and ac_nir_to_llvm splits multi-component loads because of that, which is inefficient. Reviewed-by: Pierre-Eric Pelloux-Prayer Reviewed-by: Timur Kristóf Reviewed-by: Rhys Perry Part-of: --- src/amd/vulkan/radv_pipeline.c | 2 +- src/gallium/drivers/radeonsi/si_shader_nir.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index f16b217..d7bc407 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -3185,7 +3185,7 @@ radv_postprocess_nir(struct radv_pipeline *pipeline, NIR_PASS(_, stage->nir, ac_nir_lower_subdword_loads, (ac_nir_lower_subdword_options) { .modes_1_comp = nir_var_mem_ubo, - .modes_N_comps = nir_var_mem_ubo + .modes_N_comps = nir_var_mem_ubo | nir_var_mem_ssbo }); progress = false; diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c index 624e411..db2ac4c 100644 --- a/src/gallium/drivers/radeonsi/si_shader_nir.c +++ b/src/gallium/drivers/radeonsi/si_shader_nir.c @@ -362,7 +362,7 @@ char *si_finalize_nir(struct pipe_screen *screen, void *nirptr) NIR_PASS_V(nir, ac_nir_lower_subdword_loads, (ac_nir_lower_subdword_options) { .modes_1_comp = nir_var_mem_ubo, - .modes_N_comps = nir_var_mem_ubo + .modes_N_comps = nir_var_mem_ubo | nir_var_mem_ssbo }); NIR_PASS_V(nir, nir_lower_explicit_io, nir_var_mem_shared, nir_address_format_32bit_offset); -- 2.7.4