diff --git a/src/gallium/drivers/zink/zink_instance.py b/src/gallium/drivers/zink/zink_instance.py index c24903a1166..918f97ffc87 100644 --- a/src/gallium/drivers/zink/zink_instance.py +++ b/src/gallium/drivers/zink/zink_instance.py @@ -87,18 +87,6 @@ zink_create_instance(struct zink_screen *screen) bool have_moltenvk = false; #endif - screen->loader_version = VK_API_VERSION_1_0; - { - // Get the Loader version - GET_PROC_ADDR_INSTANCE_LOCAL(NULL, EnumerateInstanceVersion); - if (vk_EnumerateInstanceVersion) { - uint32_t loader_version_temp = VK_API_VERSION_1_0; - if (VK_SUCCESS == (*vk_EnumerateInstanceVersion)(&loader_version_temp)) { - screen->loader_version = loader_version_temp; - } - } - } - // Build up the extensions from the reported ones but only for the unnamed layer uint32_t extension_count = 0; if (vkEnumerateInstanceExtensionProperties(NULL, &extension_count, NULL) == VK_SUCCESS) { diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 42c50f7bb92..2d2c0aa0a2e 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -925,6 +925,24 @@ check_device_needs_mesa_wsi(struct zink_screen *screen) } } +static uint32_t +zink_get_loader_version(void) +{ + + uint32_t loader_version = VK_API_VERSION_1_0; + + // Get the Loader version + GET_PROC_ADDR_INSTANCE_LOCAL(NULL, EnumerateInstanceVersion); + if (vk_EnumerateInstanceVersion) { + uint32_t loader_version_temp = VK_API_VERSION_1_0; + if (VK_SUCCESS == (*vk_EnumerateInstanceVersion)(&loader_version_temp)) { + loader_version = loader_version_temp; + } + } + + return loader_version; +} + static struct zink_screen * zink_internal_create_screen(const struct pipe_screen_config *config) { @@ -934,6 +952,7 @@ zink_internal_create_screen(const struct pipe_screen_config *config) zink_debug = debug_get_option_zink_debug(); + screen->loader_version = zink_get_loader_version(); screen->instance = zink_create_instance(screen); if (!screen->instance) goto fail;