nir/divergence: make smem load_global_amd uniform

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37101>
This commit is contained in:
Rhys Perry
2025-08-19 14:12:41 +01:00
committed by Marek Olšák
parent 25294f3dd4
commit 2d0f93631c

View File

@@ -651,6 +651,12 @@ 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:
@@ -678,7 +684,6 @@ 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: