zink: leave can_do_invalid_linear_modifier open for venus

Venus is able to force LINEAR modifier to ensure the handshake across
the legacy modifier-unaware boundaries. e.g. Xorg

Acked-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35453>
This commit is contained in:
Yiwei Zhang
2025-06-11 01:00:58 -07:00
committed by Marge Bot
parent d6bff136bd
commit 12e94a91e3
2 changed files with 9 additions and 1 deletions
+3 -1
View File
@@ -2760,7 +2760,7 @@ static void
init_driver_workarounds(struct zink_screen *screen)
{
/* enable implicit sync for all non-mesa drivers */
screen->driver_workarounds.implicit_sync = screen->info.driver_props.driverID != VK_DRIVER_ID_MESA_VENUS;
screen->driver_workarounds.implicit_sync = !zink_driver_is_venus(screen);
switch (zink_driverid(screen)) {
case VK_DRIVER_ID_MESA_RADV:
case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:
@@ -2977,6 +2977,8 @@ init_driver_workarounds(struct zink_screen *screen)
default:
break;
}
if (zink_driver_is_venus(screen))
screen->driver_workarounds.can_do_invalid_linear_modifier = true;
/* these drivers have no difference between unoptimized and optimized shader compilation */
switch (zink_driverid(screen)) {
+6
View File
@@ -139,6 +139,12 @@ zink_driverid(const struct zink_screen *screen)
return screen->info.vk_layered_driver_props.driverID;
}
static inline bool
zink_driver_is_venus(const struct zink_screen *screen)
{
return screen->info.driver_props.driverID == VK_DRIVER_ID_MESA_VENUS;
}
void
zink_screen_lock_context(struct zink_screen *screen);
void