Implement like other workgroup barriers. No subgroup barriers yet, but that
doesn't seem needed yet.
Fixes test_basic.async_copy_global_to_local and a pile of other OpenCL tests.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18656>
bi_barrier(b);
break;
+ case nir_intrinsic_scoped_barrier:
+ assert(b->shader->stage != MESA_SHADER_FRAGMENT);
+ assert(nir_intrinsic_memory_scope(instr) > NIR_SCOPE_SUBGROUP &&
+ "todo: subgroup barriers (different divergence rules)");
+
+ bi_barrier(b);
+ break;
+
case nir_intrinsic_shared_atomic_add:
case nir_intrinsic_shared_atomic_imin:
case nir_intrinsic_shared_atomic_umin: