From: Alyssa Rosenzweig Date: Wed, 27 Apr 2022 19:44:38 +0000 (-0400) Subject: panvk: Lower image deref atomics X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=46778f2b2a5a4a3b563aed226bb3ee526e443b10;p=platform%2Fupstream%2Fmesa.git panvk: Lower image deref atomics Fixes dEQP-VK.image.atomic_operations.* Signed-off-by: Alyssa Rosenzweig Reviewed-by: Jason Ekstrand Part-of: --- diff --git a/src/panfrost/ci/deqp-panfrost-g52-vk.toml b/src/panfrost/ci/deqp-panfrost-g52-vk.toml index 0ca070b..317a2b4 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 06c3b74..be3a7d5 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);