From: Rémi Bernon rbernon@codeweavers.com
--- dlls/win32u/driver.c | 10 ++-- dlls/win32u/vulkan.c | 13 ++--- dlls/winemac.drv/gdi.c | 2 +- dlls/winemac.drv/macdrv.h | 2 +- dlls/winemac.drv/vulkan.c | 70 ++++++++++-------------- dlls/winewayland.drv/vulkan.c | 69 ++++++++++-------------- dlls/winewayland.drv/waylanddrv.h | 2 +- dlls/winewayland.drv/waylanddrv_main.c | 2 +- dlls/winex11.drv/init.c | 10 +--- dlls/winex11.drv/vulkan.c | 73 +++++++++++--------------- dlls/winex11.drv/x11drv.h | 2 +- dlls/winex11.drv/x11drv_main.c | 6 +-- dlls/winex11.drv/xrandr.c | 2 +- include/wine/gdi_driver.h | 4 +- 14 files changed, 112 insertions(+), 155 deletions(-)
diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c index bd513ee20b7..e2749e51833 100644 --- a/dlls/win32u/driver.c +++ b/dlls/win32u/driver.c @@ -915,7 +915,7 @@ static BOOL nulldrv_SystemParametersInfo( UINT action, UINT int_param, void *ptr return FALSE; }
-static const struct vulkan_funcs *nulldrv_wine_get_vulkan_driver( UINT version ) +static void *nulldrv_VulkanInit( UINT version, struct vulkan_funcs *vulkan_funcs ) { return NULL; } @@ -1231,9 +1231,9 @@ static BOOL loaderdrv_UpdateLayeredWindow( HWND hwnd, const UPDATELAYEREDWINDOWI return load_driver()->pUpdateLayeredWindow( hwnd, info, window_rect ); }
-static const struct vulkan_funcs * loaderdrv_wine_get_vulkan_driver( UINT version ) +static void *loaderdrv_VulkanInit( UINT version, struct vulkan_funcs *vulkan_funcs ) { - return load_driver()->pwine_get_vulkan_driver( version ); + return load_driver()->pVulkanInit( version, vulkan_funcs ); }
static const struct user_driver_funcs lazy_load_driver = @@ -1302,7 +1302,7 @@ static const struct user_driver_funcs lazy_load_driver = /* system parameters */ nulldrv_SystemParametersInfo, /* vulkan support */ - loaderdrv_wine_get_vulkan_driver, + loaderdrv_VulkanInit, /* opengl support */ nulldrv_wine_get_wgl_driver, /* thread management */ @@ -1386,7 +1386,7 @@ void __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version SET_USER_FUNC(WindowPosChanging); SET_USER_FUNC(WindowPosChanged); SET_USER_FUNC(SystemParametersInfo); - SET_USER_FUNC(wine_get_vulkan_driver); + SET_USER_FUNC(VulkanInit); SET_USER_FUNC(wine_get_wgl_driver); SET_USER_FUNC(ThreadDetach); #undef SET_USER_FUNC diff --git a/dlls/win32u/vulkan.c b/dlls/win32u/vulkan.c index bd989a4979f..28d8654177c 100644 --- a/dlls/win32u/vulkan.c +++ b/dlls/win32u/vulkan.c @@ -32,13 +32,14 @@
WINE_DEFAULT_DEBUG_CHANNEL(vulkan);
-static const struct vulkan_funcs *driver_funcs; +static void *vulkan_handle; +static struct vulkan_funcs driver_funcs; static struct vulkan_funcs vulkan_funcs;
-static void load_vulkan(void) +static void vulkan_init(void) { - if ((driver_funcs = user_driver->pwine_get_vulkan_driver( WINE_VULKAN_DRIVER_VERSION ))) - vulkan_funcs = *driver_funcs; + if ((vulkan_handle = user_driver->pVulkanInit( WINE_VULKAN_DRIVER_VERSION, &driver_funcs ))) + vulkan_funcs = driver_funcs; }
/*********************************************************************** @@ -54,6 +55,6 @@ const struct vulkan_funcs *__wine_get_vulkan_driver( UINT version ) return NULL; }
- pthread_once( &init_once, load_vulkan ); - return driver_funcs ? &vulkan_funcs : NULL; + pthread_once( &init_once, vulkan_init ); + return vulkan_handle ? &vulkan_funcs : NULL; } diff --git a/dlls/winemac.drv/gdi.c b/dlls/winemac.drv/gdi.c index 137945c4b74..a06314ed62c 100644 --- a/dlls/winemac.drv/gdi.c +++ b/dlls/winemac.drv/gdi.c @@ -308,7 +308,7 @@ static const struct user_driver_funcs macdrv_funcs = .pWindowMessage = macdrv_WindowMessage, .pWindowPosChanged = macdrv_WindowPosChanged, .pWindowPosChanging = macdrv_WindowPosChanging, - .pwine_get_vulkan_driver = macdrv_wine_get_vulkan_driver, + .pVulkanInit = macdrv_VulkanInit, .pwine_get_wgl_driver = macdrv_wine_get_wgl_driver, };
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h index 7e43314dce1..bee9a1f394f 100644 --- a/dlls/winemac.drv/macdrv.h +++ b/dlls/winemac.drv/macdrv.h @@ -257,7 +257,7 @@ extern BOOL macdrv_SystemParametersInfo(UINT action, UINT int_param, void *ptr_p extern void macdrv_lost_pasteboard_ownership(HWND hwnd);
extern struct opengl_funcs *macdrv_wine_get_wgl_driver(UINT version); -extern const struct vulkan_funcs *macdrv_wine_get_vulkan_driver(UINT version); +extern void *macdrv_VulkanInit(UINT version, struct vulkan_funcs *vulkan_funcs); extern void sync_gl_view(struct macdrv_win_data* data, const RECT* old_whole_rect, const RECT* old_client_rect);
extern CGImageRef create_cgimage_from_icon_bitmaps(HDC hdc, HANDLE icon, HBITMAP hbmColor, diff --git a/dlls/winemac.drv/vulkan.c b/dlls/winemac.drv/vulkan.c index 472b2885b10..5c39f4c37cf 100644 --- a/dlls/winemac.drv/vulkan.c +++ b/dlls/winemac.drv/vulkan.c @@ -98,36 +98,6 @@ static inline struct wine_vk_surface *surface_from_handle(VkSurfaceKHR handle)
static void *vulkan_handle;
-static void wine_vk_init(void) -{ - if (!(vulkan_handle = dlopen(SONAME_LIBMOLTENVK, RTLD_NOW))) - { - ERR("Failed to load %s\n", SONAME_LIBMOLTENVK); - return; - } - -#define LOAD_FUNCPTR(f) if ((p##f = dlsym(vulkan_handle, #f)) == NULL) goto fail; - LOAD_FUNCPTR(vkCreateInstance) - LOAD_FUNCPTR(vkCreateSwapchainKHR) - LOAD_FUNCPTR(vkCreateMacOSSurfaceMVK) - LOAD_FUNCPTR(vkCreateMetalSurfaceEXT) - LOAD_FUNCPTR(vkDestroyInstance) - LOAD_FUNCPTR(vkDestroySurfaceKHR) - LOAD_FUNCPTR(vkDestroySwapchainKHR) - LOAD_FUNCPTR(vkEnumerateInstanceExtensionProperties) - LOAD_FUNCPTR(vkGetDeviceProcAddr) - LOAD_FUNCPTR(vkGetInstanceProcAddr) - LOAD_FUNCPTR(vkGetSwapchainImagesKHR) - LOAD_FUNCPTR(vkQueuePresentKHR) -#undef LOAD_FUNCPTR - - return; - -fail: - dlclose(vulkan_handle); - vulkan_handle = NULL; -} - /* Helper function for converting between win32 and MoltenVK compatible VkInstanceCreateInfo. * Caller is responsible for allocation and cleanup of 'dst'. */ @@ -498,34 +468,50 @@ static const struct vulkan_funcs vulkan_funcs = macdrv_wine_get_host_surface, };
-static const struct vulkan_funcs *get_vulkan_driver(UINT version) +void *macdrv_VulkanInit(UINT version, struct vulkan_funcs *driver_funcs) { - static pthread_once_t init_once = PTHREAD_ONCE_INIT; - if (version != WINE_VULKAN_DRIVER_VERSION) { ERR("version mismatch, vulkan wants %u but driver has %u\n", version, WINE_VULKAN_DRIVER_VERSION); return NULL; }
- pthread_once(&init_once, wine_vk_init); - if (vulkan_handle) - return &vulkan_funcs; + if (!(vulkan_handle = dlopen(SONAME_LIBMOLTENVK, RTLD_NOW))) + { + ERR("Failed to load %s\n", SONAME_LIBMOLTENVK); + return NULL; + }
+#define LOAD_FUNCPTR(f) if ((p##f = dlsym(vulkan_handle, #f)) == NULL) goto fail; + LOAD_FUNCPTR(vkCreateInstance) + LOAD_FUNCPTR(vkCreateSwapchainKHR) + LOAD_FUNCPTR(vkCreateMacOSSurfaceMVK) + LOAD_FUNCPTR(vkCreateMetalSurfaceEXT) + LOAD_FUNCPTR(vkDestroyInstance) + LOAD_FUNCPTR(vkDestroySurfaceKHR) + LOAD_FUNCPTR(vkDestroySwapchainKHR) + LOAD_FUNCPTR(vkEnumerateInstanceExtensionProperties) + LOAD_FUNCPTR(vkGetDeviceProcAddr) + LOAD_FUNCPTR(vkGetInstanceProcAddr) + LOAD_FUNCPTR(vkGetSwapchainImagesKHR) + LOAD_FUNCPTR(vkQueuePresentKHR) +#undef LOAD_FUNCPTR + + *driver_funcs = vulkan_funcs; + return vulkan_handle; + +fail: + dlclose(vulkan_handle); + vulkan_handle = NULL; return NULL; }
#else /* No vulkan */
-static const struct vulkan_funcs *get_vulkan_driver(UINT version) +void *macdrv_VulkanInit(UINT version, struct vulkan_funcs *driver_funcs) { ERR("Wine was built without Vulkan support.\n"); return NULL; }
#endif /* SONAME_LIBMOLTENVK */ - -const struct vulkan_funcs *macdrv_wine_get_vulkan_driver(UINT version) -{ - return get_vulkan_driver( version ); -} diff --git a/dlls/winewayland.drv/vulkan.c b/dlls/winewayland.drv/vulkan.c index 88c7a62422a..17e15c4cd81 100644 --- a/dlls/winewayland.drv/vulkan.c +++ b/dlls/winewayland.drv/vulkan.c @@ -542,38 +542,6 @@ static VkSurfaceKHR wayland_wine_get_host_surface(VkSurfaceKHR surface) return wine_vk_surface_from_handle(surface)->host_surface; }
-static void wine_vk_init(void) -{ - if (!(vulkan_handle = dlopen(SONAME_LIBVULKAN, RTLD_NOW))) - { - ERR("Failed to load %s.\n", SONAME_LIBVULKAN); - return; - } - -#define LOAD_FUNCPTR(f) if (!(p##f = dlsym(vulkan_handle, #f))) goto fail -#define LOAD_OPTIONAL_FUNCPTR(f) p##f = dlsym(vulkan_handle, #f) - LOAD_FUNCPTR(vkCreateInstance); - LOAD_FUNCPTR(vkCreateSwapchainKHR); - LOAD_FUNCPTR(vkCreateWaylandSurfaceKHR); - LOAD_FUNCPTR(vkDestroyInstance); - LOAD_FUNCPTR(vkDestroySurfaceKHR); - LOAD_FUNCPTR(vkDestroySwapchainKHR); - LOAD_FUNCPTR(vkEnumerateInstanceExtensionProperties); - LOAD_FUNCPTR(vkGetDeviceProcAddr); - LOAD_FUNCPTR(vkGetInstanceProcAddr); - LOAD_FUNCPTR(vkGetPhysicalDeviceWaylandPresentationSupportKHR); - LOAD_FUNCPTR(vkGetSwapchainImagesKHR); - LOAD_FUNCPTR(vkQueuePresentKHR); -#undef LOAD_FUNCPTR -#undef LOAD_OPTIONAL_FUNCPTR - - return; - -fail: - dlclose(vulkan_handle); - vulkan_handle = NULL; -} - static const struct vulkan_funcs vulkan_funcs = { .p_vkCreateInstance = wayland_vkCreateInstance, @@ -592,28 +560,49 @@ static const struct vulkan_funcs vulkan_funcs = };
/********************************************************************** - * WAYLAND_wine_get_vulkan_driver + * WAYLAND_VulkanInit */ -const struct vulkan_funcs *WAYLAND_wine_get_vulkan_driver(UINT version) +void *WAYLAND_VulkanInit(UINT version, struct vulkan_funcs *driver_funcs) { - static pthread_once_t init_once = PTHREAD_ONCE_INIT; - if (version != WINE_VULKAN_DRIVER_VERSION) { ERR("version mismatch, vulkan wants %u but driver has %u\n", version, WINE_VULKAN_DRIVER_VERSION); return NULL; }
- pthread_once(&init_once, wine_vk_init); - if (vulkan_handle) - return &vulkan_funcs; + if (!(vulkan_handle = dlopen(SONAME_LIBVULKAN, RTLD_NOW))) + { + ERR("Failed to load %s.\n", SONAME_LIBVULKAN); + return NULL; + } + +#define LOAD_FUNCPTR(f) if (!(p##f = dlsym(vulkan_handle, #f))) goto fail + LOAD_FUNCPTR(vkCreateInstance); + LOAD_FUNCPTR(vkCreateSwapchainKHR); + LOAD_FUNCPTR(vkCreateWaylandSurfaceKHR); + LOAD_FUNCPTR(vkDestroyInstance); + LOAD_FUNCPTR(vkDestroySurfaceKHR); + LOAD_FUNCPTR(vkDestroySwapchainKHR); + LOAD_FUNCPTR(vkEnumerateInstanceExtensionProperties); + LOAD_FUNCPTR(vkGetDeviceProcAddr); + LOAD_FUNCPTR(vkGetInstanceProcAddr); + LOAD_FUNCPTR(vkGetPhysicalDeviceWaylandPresentationSupportKHR); + LOAD_FUNCPTR(vkGetSwapchainImagesKHR); + LOAD_FUNCPTR(vkQueuePresentKHR); +#undef LOAD_FUNCPTR + + *driver_funcs = vulkan_funcs; + return vulkan_handle;
+fail: + dlclose(vulkan_handle); + vulkan_handle = NULL; return NULL; }
#else /* No vulkan */
-const struct vulkan_funcs *WAYLAND_wine_get_vulkan_driver(UINT version) +void *WAYLAND_VulkanInit(UINT version, struct vulkan_funcs *driver_funcs) { ERR("Wine was built without Vulkan support.\n"); return NULL; diff --git a/dlls/winewayland.drv/waylanddrv.h b/dlls/winewayland.drv/waylanddrv.h index 7cf813a1ca3..8ca0845a91c 100644 --- a/dlls/winewayland.drv/waylanddrv.h +++ b/dlls/winewayland.drv/waylanddrv.h @@ -338,7 +338,7 @@ void WAYLAND_WindowPosChanged(HWND hwnd, HWND insert_after, UINT swp_flags, BOOL WAYLAND_WindowPosChanging(HWND hwnd, HWND insert_after, UINT swp_flags, const RECT *window_rect, const RECT *client_rect, RECT *visible_rect, struct window_surface **surface); -const struct vulkan_funcs *WAYLAND_wine_get_vulkan_driver(UINT version); +void *WAYLAND_VulkanInit(UINT version, struct vulkan_funcs *); struct opengl_funcs *WAYLAND_wine_get_wgl_driver(UINT version);
#endif /* __WINE_WAYLANDDRV_H */ diff --git a/dlls/winewayland.drv/waylanddrv_main.c b/dlls/winewayland.drv/waylanddrv_main.c index ca73cd4c97d..7d02497295a 100644 --- a/dlls/winewayland.drv/waylanddrv_main.c +++ b/dlls/winewayland.drv/waylanddrv_main.c @@ -42,7 +42,7 @@ static const struct user_driver_funcs waylanddrv_funcs = .pWindowMessage = WAYLAND_WindowMessage, .pWindowPosChanged = WAYLAND_WindowPosChanged, .pWindowPosChanging = WAYLAND_WindowPosChanging, - .pwine_get_vulkan_driver = WAYLAND_wine_get_vulkan_driver, + .pVulkanInit = WAYLAND_VulkanInit, .pwine_get_wgl_driver = WAYLAND_wine_get_wgl_driver, };
diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c index 1a5cd1cfb25..b21afdf0511 100644 --- a/dlls/winex11.drv/init.c +++ b/dlls/winex11.drv/init.c @@ -333,14 +333,6 @@ static struct opengl_funcs *X11DRV_wine_get_wgl_driver( UINT version ) return get_glx_driver( version ); }
-/********************************************************************** - * X11DRV_wine_get_vulkan_driver - */ -static const struct vulkan_funcs *X11DRV_wine_get_vulkan_driver( UINT version ) -{ - return get_vulkan_driver( version ); -} -
static const struct user_driver_funcs x11drv_funcs = { @@ -436,7 +428,7 @@ static const struct user_driver_funcs x11drv_funcs = .pWindowPosChanging = X11DRV_WindowPosChanging, .pWindowPosChanged = X11DRV_WindowPosChanged, .pSystemParametersInfo = X11DRV_SystemParametersInfo, - .pwine_get_vulkan_driver = X11DRV_wine_get_vulkan_driver, + .pVulkanInit = X11DRV_VulkanInit, .pwine_get_wgl_driver = X11DRV_wine_get_wgl_driver, .pThreadDetach = X11DRV_ThreadDetach, }; diff --git a/dlls/winex11.drv/vulkan.c b/dlls/winex11.drv/vulkan.c index 0de6c72862c..50d456ae81d 100644 --- a/dlls/winex11.drv/vulkan.c +++ b/dlls/winex11.drv/vulkan.c @@ -96,41 +96,6 @@ static inline struct wine_vk_surface *surface_from_handle(VkSurfaceKHR handle)
static void *vulkan_handle;
-static void wine_vk_init(void) -{ - init_recursive_mutex(&vulkan_mutex); - - if (!(vulkan_handle = dlopen(SONAME_LIBVULKAN, RTLD_NOW))) - { - ERR("Failed to load %s.\n", SONAME_LIBVULKAN); - return; - } - -#define LOAD_FUNCPTR(f) if (!(p##f = dlsym(vulkan_handle, #f))) goto fail -#define LOAD_OPTIONAL_FUNCPTR(f) p##f = dlsym(vulkan_handle, #f) - LOAD_FUNCPTR(vkCreateInstance); - LOAD_FUNCPTR(vkCreateSwapchainKHR); - LOAD_FUNCPTR(vkCreateXlibSurfaceKHR); - LOAD_FUNCPTR(vkDestroyInstance); - LOAD_FUNCPTR(vkDestroySurfaceKHR); - LOAD_FUNCPTR(vkDestroySwapchainKHR); - LOAD_FUNCPTR(vkEnumerateInstanceExtensionProperties); - LOAD_FUNCPTR(vkGetDeviceProcAddr); - LOAD_FUNCPTR(vkGetInstanceProcAddr); - LOAD_FUNCPTR(vkGetPhysicalDeviceXlibPresentationSupportKHR); - LOAD_FUNCPTR(vkGetSwapchainImagesKHR); - LOAD_FUNCPTR(vkQueuePresentKHR); -#undef LOAD_FUNCPTR -#undef LOAD_OPTIONAL_FUNCPTR - - vulkan_hwnd_context = XUniqueContext(); - return; - -fail: - dlclose(vulkan_handle); - vulkan_handle = NULL; -} - /* Helper function for converting between win32 and X11 compatible VkInstanceCreateInfo. * Caller is responsible for allocation and cleanup of 'dst'. */ @@ -526,26 +491,50 @@ static const struct vulkan_funcs vulkan_funcs = X11DRV_wine_get_host_surface, };
-const struct vulkan_funcs *get_vulkan_driver(UINT version) +void *X11DRV_VulkanInit(UINT version, struct vulkan_funcs *driver_funcs) { - static pthread_once_t init_once = PTHREAD_ONCE_INIT; - if (version != WINE_VULKAN_DRIVER_VERSION) { ERR("version mismatch, vulkan wants %u but driver has %u\n", version, WINE_VULKAN_DRIVER_VERSION); return NULL; }
- pthread_once(&init_once, wine_vk_init); - if (vulkan_handle) - return &vulkan_funcs; + init_recursive_mutex(&vulkan_mutex);
+ if (!(vulkan_handle = dlopen(SONAME_LIBVULKAN, RTLD_NOW))) + { + ERR("Failed to load %s.\n", SONAME_LIBVULKAN); + return NULL; + } + +#define LOAD_FUNCPTR(f) if (!(p##f = dlsym(vulkan_handle, #f))) goto fail + LOAD_FUNCPTR(vkCreateInstance); + LOAD_FUNCPTR(vkCreateSwapchainKHR); + LOAD_FUNCPTR(vkCreateXlibSurfaceKHR); + LOAD_FUNCPTR(vkDestroyInstance); + LOAD_FUNCPTR(vkDestroySurfaceKHR); + LOAD_FUNCPTR(vkDestroySwapchainKHR); + LOAD_FUNCPTR(vkEnumerateInstanceExtensionProperties); + LOAD_FUNCPTR(vkGetDeviceProcAddr); + LOAD_FUNCPTR(vkGetInstanceProcAddr); + LOAD_FUNCPTR(vkGetPhysicalDeviceXlibPresentationSupportKHR); + LOAD_FUNCPTR(vkGetSwapchainImagesKHR); + LOAD_FUNCPTR(vkQueuePresentKHR); +#undef LOAD_FUNCPTR + + vulkan_hwnd_context = XUniqueContext(); + *driver_funcs = vulkan_funcs; + return vulkan_handle; + +fail: + dlclose(vulkan_handle); + vulkan_handle = NULL; return NULL; }
#else /* No vulkan */
-const struct vulkan_funcs *get_vulkan_driver(UINT version) +void *X11DRV_VulkanInit(UINT version struct vulkan_funcs *driver_funcs) { ERR("Wine was built without Vulkan support.\n"); return NULL; diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index a525f0dd499..e6697b8fcdd 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -292,7 +292,7 @@ extern BOOL shape_layered_windows; extern const struct gdi_dc_funcs *X11DRV_XRender_Init(void);
extern struct opengl_funcs *get_glx_driver(UINT); -extern const struct vulkan_funcs *get_vulkan_driver(UINT); +extern void *X11DRV_VulkanInit(UINT,struct vulkan_funcs *);
extern struct format_entry *import_xdnd_selection( Display *display, Window win, Atom selection, Atom *targets, UINT count, diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c index bbb0386bd69..b7bb60f4477 100644 --- a/dlls/winex11.drv/x11drv_main.c +++ b/dlls/winex11.drv/x11drv_main.c @@ -819,7 +819,7 @@ BOOL X11DRV_SystemParametersInfo( UINT action, UINT int_param, void *ptr_param,
NTSTATUS X11DRV_D3DKMTCloseAdapter( const D3DKMT_CLOSEADAPTER *desc ) { - const struct vulkan_funcs *vulkan_funcs = get_vulkan_driver(WINE_VULKAN_DRIVER_VERSION); + const struct vulkan_funcs *vulkan_funcs = __wine_get_vulkan_driver(WINE_VULKAN_DRIVER_VERSION); struct x11_d3dkmt_adapter *adapter;
if (!vulkan_funcs) @@ -1003,7 +1003,7 @@ NTSTATUS X11DRV_D3DKMTOpenAdapterFromLuid( D3DKMT_OPENADAPTERFROMLUID *desc ) }
/* Find the Vulkan device with corresponding UUID */ - if (!(vulkan_funcs = get_vulkan_driver(WINE_VULKAN_DRIVER_VERSION))) + if (!(vulkan_funcs = __wine_get_vulkan_driver(WINE_VULKAN_DRIVER_VERSION))) { WARN("Vulkan is unavailable.\n"); return STATUS_UNSUCCESSFUL; @@ -1091,7 +1091,7 @@ done:
NTSTATUS X11DRV_D3DKMTQueryVideoMemoryInfo( D3DKMT_QUERYVIDEOMEMORYINFO *desc ) { - const struct vulkan_funcs *vulkan_funcs = get_vulkan_driver(WINE_VULKAN_DRIVER_VERSION); + const struct vulkan_funcs *vulkan_funcs = __wine_get_vulkan_driver(WINE_VULKAN_DRIVER_VERSION); PFN_vkGetPhysicalDeviceMemoryProperties2KHR pvkGetPhysicalDeviceMemoryProperties2KHR; VkPhysicalDeviceMemoryBudgetPropertiesEXT budget; VkPhysicalDeviceMemoryProperties2 properties2; diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c index d77eb1a0163..b829c677ff1 100644 --- a/dlls/winex11.drv/xrandr.c +++ b/dlls/winex11.drv/xrandr.c @@ -639,7 +639,7 @@ static BOOL get_gpu_properties_from_vulkan( struct gdi_gpu *gpu, const XRRProvid "VK_KHR_display", VK_KHR_SURFACE_EXTENSION_NAME, }; - const struct vulkan_funcs *vulkan_funcs = get_vulkan_driver( WINE_VULKAN_DRIVER_VERSION ); + const struct vulkan_funcs *vulkan_funcs = __wine_get_vulkan_driver( WINE_VULKAN_DRIVER_VERSION ); VkResult (*pvkGetRandROutputDisplayEXT)( VkPhysicalDevice, Display *, RROutput, VkDisplayKHR * ); PFN_vkGetPhysicalDeviceProperties2KHR pvkGetPhysicalDeviceProperties2KHR; PFN_vkEnumeratePhysicalDevices pvkEnumeratePhysicalDevices; diff --git a/include/wine/gdi_driver.h b/include/wine/gdi_driver.h index ffe84787d51..28b73864324 100644 --- a/include/wine/gdi_driver.h +++ b/include/wine/gdi_driver.h @@ -175,7 +175,7 @@ struct gdi_dc_funcs };
/* increment this when you change the DC function table */ -#define WINE_GDI_DRIVER_VERSION 84 +#define WINE_GDI_DRIVER_VERSION 85
#define GDI_PRIORITY_NULL_DRV 0 /* null driver */ #define GDI_PRIORITY_FONT_DRV 100 /* any font driver */ @@ -348,7 +348,7 @@ struct user_driver_funcs /* system parameters */ BOOL (*pSystemParametersInfo)(UINT,UINT,void*,UINT); /* vulkan support */ - const struct vulkan_funcs * (*pwine_get_vulkan_driver)(UINT); + void * (*pVulkanInit)(UINT,struct vulkan_funcs *); /* opengl support */ struct opengl_funcs * (*pwine_get_wgl_driver)(UINT); /* thread management */