zink: disable dynamic state exts if the previous ones aren't present
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Fri, 12 May 2023 16:36:57 +0000 (12:36 -0400)
committerMarge Bot <emma+marge@anholt.net>
Fri, 12 May 2023 17:53:02 +0000 (17:53 +0000)
this would be weird if a driver did it

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22996>

src/gallium/drivers/zink/zink_screen.c

index acd21d1..6da0fa6 100644 (file)
@@ -2412,6 +2412,12 @@ init_driver_workarounds(struct zink_screen *screen)
    if (screen->info.props.limits.maxBoundDescriptorSets < ZINK_DESCRIPTOR_ALL_TYPES ||
        zink_debug & (ZINK_DEBUG_COMPACT | ZINK_DEBUG_NOSHOBJ))
       screen->info.have_EXT_shader_object = false;
+   /* EDS2 is only used with EDS1 */
+   if (!screen->info.have_EXT_extended_dynamic_state)
+      screen->info.have_EXT_extended_dynamic_state2 = false;
+   /* EDS3 is only used with EDS2 */
+   if (!screen->info.have_EXT_extended_dynamic_state2)
+      screen->info.have_EXT_extended_dynamic_state3 = false;
    /* EXT_vertex_input_dynamic_state is only used with EDS2 and above */
    if (!screen->info.have_EXT_extended_dynamic_state2)
       screen->info.have_EXT_vertex_input_dynamic_state = false;