turnip/ir3: handle image load/stores produced by AtomicLoad/Store
authorDanylo Piliaiev <dpiliaiev@igalia.com>
Wed, 13 Jan 2021 14:39:41 +0000 (16:39 +0200)
committerMarge Bot <eric+marge@anholt.net>
Thu, 14 Jan 2021 05:43:56 +0000 (05:43 +0000)
commitad098553ee9ef1ce8c115454f26fb0d3fe272be3
tree568305ee15012fcb4850505c1c4213f9799b93ac
parent9c54928f7762a59da4638a563e6c852ecbb9c76f
turnip/ir3: handle image load/stores produced by AtomicLoad/Store

SpvOpAtomicLoad and SpvOpAtomicStore are translated into
nir_intrinsic_image_deref_store/load instead of some separate
atomic intrinsics, however they don't have src or dest type
specified. Turnip doesn't support shaderImageFloat32Atomics
so type is just integer.

Fixes:
dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.device.payload_local.image.guard_local.image.frag
dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_local.buffer.guard_local.image.comp
dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrite.device.payload_local.buffer.guard_local.image.comp
dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_local.image.guard_local.image.comp
dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_nonlocal.workgroup.guard_local.image.comp

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8476>
.gitlab-ci/deqp-freedreno-a630-fails.txt
src/freedreno/ir3/ir3_image.c