From fb70b9ba5818628312851e1369d33d5d1daba6f6 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Thu, 11 Sep 2025 10:22:09 +0200 Subject: [PATCH] spirv: add missing non-uniform access for SSBO atomics This fixes new VKCTS coverage dEQP-VK.descriptor_indexing.non_uniform_atomics. Found this while implementing a new extension. Cc: mesa-stable Signed-off-by: Samuel Pitoiset Part-of: (cherry picked from commit 9fbf29fc6d40a19edc76ffa18dae51bcdf35f142) --- .pick_status.json | 2 +- src/compiler/spirv/spirv_to_nir.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 79721142bd4..0a34735c2a0 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5554,7 +5554,7 @@ "description": "spirv: add missing non-uniform access for SSBO atomics", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index 6c956ea5c8c..e7c988fca77 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -4502,6 +4502,8 @@ vtn_handle_atomics(struct vtn_builder *b, SpvOp opcode, if (ptr->mode != vtn_variable_mode_workgroup) access |= ACCESS_COHERENT; + if (ptr->access & ACCESS_NON_UNIFORM) + access |= ACCESS_NON_UNIFORM; nir_intrinsic_set_access(atomic, access);