From 354df09c8808ec14ac1275a54f8665d1d3f6abdf Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Tue, 19 Aug 2025 15:40:52 +0100 Subject: [PATCH] nir: add global_amd to nir_get_io_offset_src/nir_get_io_index_src This is needed for nir_opt_load_skip_helpers. fossil-db (gfx1201): Totals from 5 (0.01% of 79839) affected shaders: Instrs: 2288 -> 2286 (-0.09%); split: -0.13%, +0.04% CodeSize: 12372 -> 12364 (-0.06%); split: -0.10%, +0.03% Latency: 18378 -> 20044 (+9.07%) Signed-off-by: Rhys Perry Reviewed-by: Georg Lehmann Fixes: 883b1ca364d ("aco: disable wqm for tex loads when not needed") Part-of: --- src/compiler/nir/nir_lower_io.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/compiler/nir/nir_lower_io.c b/src/compiler/nir/nir_lower_io.c index 71265a5c1e3..3c57301bd67 100644 --- a/src/compiler/nir/nir_lower_io.c +++ b/src/compiler/nir/nir_lower_io.c @@ -974,6 +974,7 @@ nir_get_io_offset_src_number(const nir_intrinsic_instr *instr) case nir_intrinsic_load_per_primitive_output: case nir_intrinsic_load_interpolated_input: case nir_intrinsic_load_smem_amd: + case nir_intrinsic_load_global_amd: case nir_intrinsic_store_output: case nir_intrinsic_store_shared: case nir_intrinsic_store_task_payload: @@ -1003,6 +1004,9 @@ nir_get_io_offset_src_number(const nir_intrinsic_instr *instr) case nir_intrinsic_store_ssbo_block_intel: case nir_intrinsic_store_buffer_amd: case nir_intrinsic_store_ssbo_intel: + case nir_intrinsic_store_global_amd: + case nir_intrinsic_global_atomic_amd: + case nir_intrinsic_global_atomic_swap_amd: return 2; case nir_intrinsic_load_ssbo_ir3: /* This intrinsic has 2 offsets (src1 bytes, src2 dwords), we return the @@ -1046,6 +1050,9 @@ nir_get_io_index_src_number(const nir_intrinsic_instr *instr) case nir_intrinsic_load_per_primitive_output: case nir_intrinsic_load_interpolated_input: case nir_intrinsic_load_smem_amd: + case nir_intrinsic_load_global_amd: + case nir_intrinsic_global_atomic_amd: + case nir_intrinsic_global_atomic_swap_amd: case nir_intrinsic_ldc_nv: case nir_intrinsic_ldcx_nv: case nir_intrinsic_load_ssbo_intel: @@ -1061,6 +1068,7 @@ nir_get_io_index_src_number(const nir_intrinsic_instr *instr) case nir_intrinsic_store_per_primitive_output: case nir_intrinsic_store_ssbo_block_intel: case nir_intrinsic_store_ssbo_intel: + case nir_intrinsic_store_global_amd: return 1; default: return -1;