From 2178a8da51fee6dc266541c468de58e66b7b0e17 Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Sun, 26 Feb 2023 20:59:05 -0800 Subject: [PATCH] gallivm: Fix handling of nir_intrinsic_scoped_barrier A scoped barrier only has a control barrier behavior if there's an execution scope. Fixes: 13d900de0dcf ("llvmpipe: set nir_shader_compiler_options::use_scoped_barrier") Reviewed-by: Faith Ekstrand Part-of: --- src/gallium/auxiliary/gallivm/lp_bld_nir.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir.c b/src/gallium/auxiliary/gallivm/lp_bld_nir.c index 2ef3d4b655b..870c120ff56 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_nir.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_nir.c @@ -2123,9 +2123,12 @@ visit_intrinsic(struct lp_build_nir_context *bld_base, visit_shared_atomic(bld_base, instr, result); break; case nir_intrinsic_control_barrier: - case nir_intrinsic_scoped_barrier: visit_barrier(bld_base); break; + case nir_intrinsic_scoped_barrier: + if (nir_intrinsic_execution_scope(instr) != NIR_SCOPE_NONE) + visit_barrier(bld_base); + break; case nir_intrinsic_group_memory_barrier: case nir_intrinsic_memory_barrier: case nir_intrinsic_memory_barrier_shared: