From 7593667b0aec0e7988d7db2e1430cad4b9dbf87e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Mon, 21 Jul 2025 12:37:32 +0200 Subject: [PATCH] nir/divergence_analysis: check ACCESS_SMEM_AMD Revert "nir/divergence: make smem load_global_amd uniform" This reverts commit 2d0f93631c946800f36173d2b9f7dc24a315402e. Part-of: --- src/compiler/nir/nir_divergence_analysis.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index 15ba95f52ff..9fa6e27c537 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -651,12 +651,6 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state) is_divergent = src_divergent(instr->src[0], state); break; - case nir_intrinsic_load_global_amd: - is_divergent = (src_divergent(instr->src[0], state) || - src_divergent(instr->src[1], state)) && - !(nir_intrinsic_access(instr) & ACCESS_SMEM_AMD); - break; - /* Intrinsics with divergence depending on sources */ case nir_intrinsic_convert_alu_types: case nir_intrinsic_ddx: @@ -684,6 +678,7 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state) case nir_intrinsic_quad_vote_all: case nir_intrinsic_load_shared2_amd: case nir_intrinsic_load_global_constant: + case nir_intrinsic_load_global_amd: case nir_intrinsic_load_uniform: case nir_intrinsic_load_constant: case nir_intrinsic_load_sample_pos_from_id: @@ -984,6 +979,10 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state) (nir_intrinsic_access(instr) & ACCESS_SKIP_HELPERS)) is_divergent = true; + if (nir_intrinsic_has_access(instr) && + (nir_intrinsic_access(instr) & ACCESS_SMEM_AMD)) + is_divergent = false; + instr->def.divergent = is_divergent; return is_divergent; }