summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>2023-05-15 09:02:57 -0400
committerMarge Bot <emma+marge@anholt.net>2023-05-16 22:36:21 +0000
commit43b9dc3c53f9ec334a009e0b489b2a2cae3afa82 (patch)
treed9cfd22fb9a17c16c06f52dca24a6d0e11a660c3
parent8088171369b0d8588d5315f65df92b7c0decade8 (diff)
downloadmesa-43b9dc3c53f9ec334a009e0b489b2a2cae3afa82.tar.gz
v3dv: Lower legacy atomics earlier
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Emma Anholt <emma@anholt.net> Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23036>
-rw-r--r--src/broadcom/vulkan/v3dv_pipeline.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c
index 4832e1a7e4c..3def20f37e5 100644
--- a/src/broadcom/vulkan/v3dv_pipeline.c
+++ b/src/broadcom/vulkan/v3dv_pipeline.c
@@ -840,16 +840,8 @@ lower_intrinsic(nir_builder *b,
case nir_intrinsic_image_deref_load:
case nir_intrinsic_image_deref_store:
- case nir_intrinsic_image_deref_atomic_add:
- case nir_intrinsic_image_deref_atomic_imin:
- case nir_intrinsic_image_deref_atomic_umin:
- case nir_intrinsic_image_deref_atomic_imax:
- case nir_intrinsic_image_deref_atomic_umax:
- case nir_intrinsic_image_deref_atomic_and:
- case nir_intrinsic_image_deref_atomic_or:
- case nir_intrinsic_image_deref_atomic_xor:
- case nir_intrinsic_image_deref_atomic_exchange:
- case nir_intrinsic_image_deref_atomic_comp_swap:
+ case nir_intrinsic_image_deref_atomic:
+ case nir_intrinsic_image_deref_atomic_swap:
case nir_intrinsic_image_deref_size:
case nir_intrinsic_image_deref_samples:
lower_image_deref(b, instr, state);
@@ -1716,6 +1708,9 @@ pipeline_lower_nir(struct v3dv_pipeline *pipeline,
assert(pipeline->shared_data &&
pipeline->shared_data->maps[p_stage->stage]);
+ /* Temporary stopgap until legacy atomics are removed in core */
+ NIR_PASS_V(p_stage->nir, nir_lower_legacy_atomics);
+
NIR_PASS_V(p_stage->nir, nir_vk_lower_ycbcr_tex,
lookup_ycbcr_conversion, layout);