From f8e971f51142195533e201ea45e33afaaaca1eac Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Thu, 15 Oct 2020 14:13:36 +0100 Subject: [PATCH] nir/opt_load_store_vectorize: don't vectorize stores across demote Signed-off-by: Rhys Perry Reviewed-by: Jason Ekstrand Fixes: ce9205c03bd ("nir: add a load/store vectorization pass") Part-of: --- src/compiler/nir/nir_opt_load_store_vectorize.c | 5 +++++ src/compiler/nir/nir_schedule.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/compiler/nir/nir_opt_load_store_vectorize.c b/src/compiler/nir/nir_opt_load_store_vectorize.c index 593a02201dc..6be3817e89b 100644 --- a/src/compiler/nir/nir_opt_load_store_vectorize.c +++ b/src/compiler/nir/nir_opt_load_store_vectorize.c @@ -1172,6 +1172,11 @@ handle_barrier(struct vectorize_ctx *ctx, bool *progress, nir_function_impl *imp case nir_intrinsic_discard: modes = nir_var_all; break; + case nir_intrinsic_demote_if: + case nir_intrinsic_demote: + acquire = false; + modes = nir_var_all; + break; case nir_intrinsic_memory_barrier_buffer: modes = nir_var_mem_ssbo | nir_var_mem_global; break; diff --git a/src/compiler/nir/nir_schedule.c b/src/compiler/nir/nir_schedule.c index 126c49ae8ca..36a045525ed 100644 --- a/src/compiler/nir/nir_schedule.c +++ b/src/compiler/nir/nir_schedule.c @@ -355,6 +355,8 @@ nir_schedule_intrinsic_deps(nir_deps_state *state, case nir_intrinsic_discard: case nir_intrinsic_discard_if: + case nir_intrinsic_demote: + case nir_intrinsic_demote_if: /* We are adding two dependencies: * * * A individual one that we could use to add a read_dep while handling