From: Emma Anholt Date: Tue, 3 Jan 2023 22:17:48 +0000 (-0800) Subject: zink: Only expose PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD if we can actually add. X-Git-Tag: upstream/23.3.3~15034 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=426cb025e7fd09d94713c84bc02ef7b9aaad3fa8;p=platform%2Fupstream%2Fmesa.git 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: c32f046ab669 ("zink: export PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD") Part-of: --- diff --git a/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt b/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt index 36107f0..7690116 100644 --- a/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt @@ -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 diff --git a/src/gallium/drivers/zink/ci/zink-radv-fails.txt b/src/gallium/drivers/zink/ci/zink-radv-fails.txt index 909db7e..d1e7bec 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-fails.txt @@ -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 diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 8b3643f..48489a1 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -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;