nir/schedule: fix handling of generic memory barrier

We can get a generic nir_intrinsic_memory_barrier to represent a
barrier involving multiple semantics (instead of getting individual
specific barriers for each semantic). This means that we need to
consider these as potentially affecting shared memory access as well.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15276>
This commit is contained in:
Iago Toral Quiroga 2022-03-09 10:38:42 +01:00 committed by Marge Bot
parent 9ef499b315
commit 46e330c07e

View file

@ -403,6 +403,10 @@ nir_schedule_intrinsic_deps(nir_deps_state *state,
case nir_intrinsic_control_barrier:
case nir_intrinsic_memory_barrier_shared:
/* A generic memory barrier can be emitted when multiple synchronization
* semantics are involved, including shared memory.
*/
case nir_intrinsic_memory_barrier:
add_write_dep(state, &state->store_shared, n);
/* Serialize against ssbos/atomics/etc. */