From: MrRobbin Date: Tue, 16 May 2023 05:54:49 +0000 (+0800) Subject: zink: Move the workaround before the EDS setting. X-Git-Tag: upstream/23.3.3~8598 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=47f080194956a1da3beca5800b3bf7f85cb8b36c;p=platform%2Fupstream%2Fmesa.git zink: Move the workaround before the EDS setting. Then we can guarantee the settings correct, otherwise the 'screen->info.have_EXT_extended_dynamic_state3 = false' and 'screen->info.have_EXT_vertex_input_dynamic_state = false' will be enable, but actually we should disable it when 'have_EXT_extended_dynamic_state2 = false'. Fixes: d5cf6f7d2f9 ("zink: disable dynamic state exts if the previous ones aren't present") Part-of: --- diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 6da0fa6..c2ea90a 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -2415,6 +2415,9 @@ init_driver_workarounds(struct zink_screen *screen) /* EDS2 is only used with EDS1 */ if (!screen->info.have_EXT_extended_dynamic_state) screen->info.have_EXT_extended_dynamic_state2 = false; + if (screen->info.driver_props.driverID == VK_DRIVER_ID_AMD_PROPRIETARY) + /* this completely breaks xfb somehow */ + 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; @@ -2455,9 +2458,6 @@ init_driver_workarounds(struct zink_screen *screen) screen->info.gpl_props.graphicsPipelineLibraryFastLinking || screen->is_cpu); screen->driver_workarounds.broken_l4a4 = screen->info.driver_props.driverID == VK_DRIVER_ID_NVIDIA_PROPRIETARY; - if (screen->info.driver_props.driverID == VK_DRIVER_ID_AMD_PROPRIETARY) - /* this completely breaks xfb somehow */ - screen->info.have_EXT_extended_dynamic_state2 = false; if (screen->info.driver_props.driverID == VK_DRIVER_ID_MESA_TURNIP) { /* performance */ screen->info.border_color_feats.customBorderColorWithoutFormat = VK_FALSE;