panvk: Lower image deref atomics
authorAlyssa Rosenzweig <alyssa@collabora.com>
Wed, 27 Apr 2022 19:44:38 +0000 (15:44 -0400)
committerMarge Bot <emma+marge@anholt.net>
Mon, 2 May 2022 20:28:48 +0000 (20:28 +0000)
Fixes dEQP-VK.image.atomic_operations.*

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16283>

src/panfrost/ci/deqp-panfrost-g52-vk.toml
src/panfrost/vulkan/panvk_vX_shader.c

index 0ca070b..317a2b4 100644 (file)
@@ -13,6 +13,7 @@ include = [
     "dEQP-VK.api.copy_and_blit.core.*",
     "dEQP-VK.compute.builtin_var.*",
     "dEQP-VK.draw.renderpass.instanced.draw_indexed_vk_*",
+    "dEQP-VK.image.atomic_operations.*",
     "dEQP-VK.glsl.builtin.function.*",
     "dEQP-VK.glsl.builtin.precision.frexp.*",
     "dEQP-VK.glsl.builtin.precision.ldexp.*",
index 06c3b74..be3a7d5 100644 (file)
@@ -221,7 +221,20 @@ lower_intrinsic(nir_builder *b, nir_intrinsic_instr *intr,
       lower_load_vulkan_descriptor(b, intr);
       return true;
    case nir_intrinsic_image_deref_store:
-   case nir_intrinsic_image_deref_load: {
+   case nir_intrinsic_image_deref_load:
+   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_fadd:
+   case nir_intrinsic_image_deref_size:
+   case nir_intrinsic_image_deref_samples: {
       nir_deref_instr *deref = nir_src_as_deref(intr->src[0]);
 
       b->cursor = nir_before_instr(&intr->instr);