diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index fd8028687cc..887464912d7 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -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)) { diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h index 1970f814645..45be34c94fc 100644 --- a/src/gallium/drivers/zink/zink_screen.h +++ b/src/gallium/drivers/zink/zink_screen.h @@ -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