diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 4c8b19a8eb7..6e55838f917 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -2885,6 +2885,18 @@ init_driver_workarounds(struct zink_screen *screen) screen->driver_workarounds.disable_optimized_compile = true; break; } + + switch (screen->info.driver_props.driverID) { + case VK_DRIVER_ID_MESA_RADV: + case VK_DRIVER_ID_AMD_OPEN_SOURCE: + case VK_DRIVER_ID_AMD_PROPRIETARY: + /* this has bad perf on AMD */ + screen->info.have_KHR_push_descriptor = false; + break; + default: + break; + } + if (!screen->resizable_bar) screen->info.have_EXT_host_image_copy = false; } @@ -3254,11 +3266,6 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev screen->dev); init_queue(screen); - if (screen->info.driver_props.driverID == VK_DRIVER_ID_MESA_RADV || - screen->info.driver_props.driverID == VK_DRIVER_ID_AMD_OPEN_SOURCE || - screen->info.driver_props.driverID == VK_DRIVER_ID_AMD_PROPRIETARY) - /* this has bad perf on AMD */ - screen->info.have_KHR_push_descriptor = false; zink_verify_device_extensions(screen);