Drivers may expose the ext without the add capability, if they can
load/store/exchange.
Fixes:
c32f046ab669 ("zink: export PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20506>
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
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
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;