Jacek Caban : winevulkan: Move __wine_get_vulkan_driver call to Unix lib.

Alexandre Julliard julliard at winehq.org
Wed Jul 27 16:17:07 CDT 2022


Module: wine
Branch: master
Commit: 1de20f86ea81b212009a4fab7b79a2fb7d4d4e06
URL:    https://gitlab.winehq.org/wine/wine/-/commit/1de20f86ea81b212009a4fab7b79a2fb7d4d4e06

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Apr  5 19:54:55 2022 +0200

winevulkan: Move __wine_get_vulkan_driver call to Unix lib.

---

 dlls/winevulkan/Makefile.in |  2 +-
 dlls/winevulkan/loader.c    | 15 +--------------
 dlls/winevulkan/vulkan.c    |  9 ++++++++-
 3 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/dlls/winevulkan/Makefile.in b/dlls/winevulkan/Makefile.in
index 360fb77a6eb..732bf5493a9 100644
--- a/dlls/winevulkan/Makefile.in
+++ b/dlls/winevulkan/Makefile.in
@@ -2,7 +2,7 @@ MODULE    = winevulkan.dll
 UNIXLIB   = winevulkan.so
 IMPORTLIB = winevulkan
 IMPORTS   = user32 gdi32 advapi32 setupapi win32u
-UNIX_LIBS = $(PTHREAD_LIBS)
+UNIX_LIBS = -lwin32u $(PTHREAD_LIBS)
 
 C_SRCS = \
 	loader.c \
diff --git a/dlls/winevulkan/loader.c b/dlls/winevulkan/loader.c
index 86e6718adbd..1c45c036c18 100644
--- a/dlls/winevulkan/loader.c
+++ b/dlls/winevulkan/loader.c
@@ -215,24 +215,11 @@ VkResult WINAPI vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t *supported_ver
 
 static BOOL WINAPI wine_vk_init(INIT_ONCE *once, void *param, void **context)
 {
-    const void *driver;
-
-    driver = __wine_get_vulkan_driver(WINE_VULKAN_DRIVER_VERSION);
-    if (!driver)
-    {
-        ERR("Failed to load Wine graphics driver supporting Vulkan.\n");
-        return FALSE;
-    }
-
     if (NtQueryVirtualMemory(GetCurrentProcess(), hinstance, MemoryWineUnixFuncs,
                              &unix_handle, sizeof(unix_handle), NULL))
         return FALSE;
 
-    if (vk_unix_call(unix_init, &driver) || !driver)
-        return FALSE;
-
-    unix_funcs = driver;
-    return TRUE;
+    return !vk_unix_call(unix_init, &unix_funcs);
 }
 
 static BOOL  wine_vk_init_once(void)
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c
index 190f70f3616..071dbd4cdff 100644
--- a/dlls/winevulkan/vulkan.c
+++ b/dlls/winevulkan/vulkan.c
@@ -436,7 +436,14 @@ static void wine_vk_device_free(struct VkDevice_T *device)
 
 NTSTATUS init_vulkan(void *args)
 {
-    vk_funcs = *(const struct vulkan_funcs **)args;
+    vk_funcs = __wine_get_vulkan_driver(WINE_VULKAN_DRIVER_VERSION);
+    if (!vk_funcs)
+    {
+        ERR("Failed to load Wine graphics driver supporting Vulkan.\n");
+        return STATUS_UNSUCCESSFUL;
+    }
+
+
     *(const struct unix_funcs **)args = &loader_funcs;
     return STATUS_SUCCESS;
 }




More information about the wine-cvs mailing list