zink: Only expose PIPE_CAP_SHADER_ATOMIC_INT64 if we can do shared and ssbos.
authorEmma Anholt <emma@anholt.net>
Tue, 3 Jan 2023 22:33:44 +0000 (14:33 -0800)
committerEric Engestrom <eric@engestrom.ch>
Wed, 11 Jan 2023 17:44:21 +0000 (17:44 +0000)
Fixes: 3ac0706aa83b ("zink: export PIPE_CAP_SHADER_ATOMIC_INT64")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20506>
(cherry picked from commit b8d9f860a02daa253213b216488941807e8ea79a)

.pick_status.json
src/gallium/drivers/zink/zink_screen.c

index 31ebf8c..5df9eec 100644 (file)
         "description": "zink: Only expose PIPE_CAP_SHADER_ATOMIC_INT64 if we can do shared and ssbos.",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "3ac0706aa83b10be1062dc61afe1f65ff3f716ff"
     },
index 74c25dd..d3b9d78 100644 (file)
@@ -598,7 +598,9 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
               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;
+      return (screen->info.have_KHR_shader_atomic_int64 &&
+              screen->info.atomic_int_feats.shaderSharedInt64Atomics &&
+              screen->info.atomic_int_feats.shaderBufferInt64Atomics);
 
    case PIPE_CAP_MULTI_DRAW_INDIRECT_PARAMS:
       return screen->info.have_KHR_draw_indirect_count;