nir/divergence_analysis: check ACCESS_SMEM_AMD

Revert "nir/divergence: make smem load_global_amd uniform"

This reverts commit 2d0f93631c.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36936>
This commit is contained in:
Daniel Schürmann
2025-07-21 12:37:32 +02:00
committed by Marge Bot
parent c82d70d3ec
commit 7593667b0a

View File

@@ -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;
}