diff --git a/.pick_status.json b/.pick_status.json index fcb2c4ef572..9a63525de0e 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -130,7 +130,7 @@ "description": "nir/opt_load_store_vectorize: don't vectorize stores across demote", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "ce9205c03bd20d26af23ca891e97a9f848a612d1" }, diff --git a/src/compiler/nir/nir_opt_load_store_vectorize.c b/src/compiler/nir/nir_opt_load_store_vectorize.c index 9e1be94aa63..7f22d52ed05 100644 --- a/src/compiler/nir/nir_opt_load_store_vectorize.c +++ b/src/compiler/nir/nir_opt_load_store_vectorize.c @@ -1219,6 +1219,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