zink: Only expose PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD if we can actually add.

Drivers may expose the ext without the add capability, if they can
load/store/exchange.

Fixes: c32f046ab6 ("zink: export PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20506>
This commit is contained in:
Emma Anholt
2023-01-03 14:17:48 -08:00
committed by Marge Bot
parent a4a1f95431
commit 426cb025e7
3 changed files with 3 additions and 6 deletions
@@ -896,8 +896,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail
spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode full precision,Fail
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20506
spec@nv_shader_atomic_float@execution@shared-atomicadd-float,Crash
spec@nv_shader_atomic_float@execution@ssbo-atomicadd-float,Crash
spec@nv_shader_atomic_int64@execution@shared-atomicadd-int,Fail
spec@nv_shader_atomic_int64@execution@shared-atomicand-int,Fail
spec@nv_shader_atomic_int64@execution@shared-atomicand-uint,Fail
@@ -473,9 +473,6 @@ spec@!opengl 1.1@read-front samples=6,Fail
spec@!opengl 1.1@read-front samples=8,Fail
spec@ext_framebuffer_blit@fbo-blit-check-limits,Fail
# Zink bug (RADV doesn't support shaderBufferFloat64AtomicAdd)
spec@nv_shader_atomic_float@execution@ssbo-atomicadd-float,Crash
# ACO bugs (pass with LLVM)
spec@nv_shader_atomic_int64@execution@shared-atomicmax-int,Crash
spec@nv_shader_atomic_int64@execution@shared-atomicmax-uint,Crash
+3 -1
View File
@@ -595,7 +595,9 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
return screen->info.feats.features.multiDrawIndirect;
case PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD:
return screen->info.have_EXT_shader_atomic_float;
return (screen->info.have_EXT_shader_atomic_float &&
screen->info.atomic_float_feats.shaderSharedFloat32AtomicAdd &&
screen->info.atomic_float_feats.shaderBufferFloat32AtomicAdd);
case PIPE_CAP_SHADER_ATOMIC_INT64:
return screen->info.have_KHR_shader_atomic_int64;