Mesa (main): panvk: Lower image deref atomics

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon May 2 20:46:31 UTC 2022


Module: Mesa
Branch: main
Commit: 46778f2b2a5a4a3b563aed226bb3ee526e443b10
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=46778f2b2a5a4a3b563aed226bb3ee526e443b10

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Wed Apr 27 15:44:38 2022 -0400

panvk: Lower image deref atomics

Fixes dEQP-VK.image.atomic_operations.*

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

---

 src/panfrost/ci/deqp-panfrost-g52-vk.toml |  1 +
 src/panfrost/vulkan/panvk_vX_shader.c     | 15 ++++++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/panfrost/ci/deqp-panfrost-g52-vk.toml b/src/panfrost/ci/deqp-panfrost-g52-vk.toml
index 0ca070ba955..317a2b402e5 100644
--- a/src/panfrost/ci/deqp-panfrost-g52-vk.toml
+++ b/src/panfrost/ci/deqp-panfrost-g52-vk.toml
@@ -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.*",
diff --git a/src/panfrost/vulkan/panvk_vX_shader.c b/src/panfrost/vulkan/panvk_vX_shader.c
index 06c3b747d85..be3a7d541a7 100644
--- a/src/panfrost/vulkan/panvk_vX_shader.c
+++ b/src/panfrost/vulkan/panvk_vX_shader.c
@@ -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);



More information about the mesa-commit mailing list