zink: add a define for testing that an optimal key is the default
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 6 Feb 2023 22:35:51 +0000 (17:35 -0500)
committerEric Engestrom <eric@engestrom.ch>
Wed, 8 Feb 2023 20:34:46 +0000 (20:34 +0000)
tcs values here are ignored since they only matter for generated tcs

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21169>
(cherry picked from commit 7c021cc5f05d24211f327ea16d686f4bd9986465)

.pick_status.json
src/gallium/drivers/zink/zink_shader_keys.h

index 60f4ba9..1eec8ce 100644 (file)
         "description": "zink: add a define for testing that an optimal key is the default",
         "nominated": false,
         "nomination_type": null,
-        "resolution": 4,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
index d49785b..b3abad1 100644 (file)
@@ -109,6 +109,16 @@ union zink_shader_key_optimal {
 
 /* the default key has only last_vertex_stage set*/
 #define ZINK_SHADER_KEY_OPTIMAL_DEFAULT (1<<0)
+/* Ignore patch_vertices bits that would only be used if we had to generate the missing TCS */
+static inline uint32_t
+zink_shader_key_optimal_no_tcs(uint32_t key)
+{
+   union zink_shader_key_optimal k;
+   k.val = key;
+   k.tcs_bits = 0;
+   return k.val;
+}
+#define ZINK_SHADER_KEY_OPTIMAL_IS_DEFAULT(key) (zink_shader_key_optimal_no_tcs(key) == ZINK_SHADER_KEY_OPTIMAL_DEFAULT)
 
 static inline const struct zink_fs_key *
 zink_fs_key(const struct zink_shader_key *key)