 
            From: Rémi Bernon rbernon@codeweavers.com
--- dlls/win32u/vulkan.c | 21 +++++++++++---------- dlls/winemac.drv/vulkan.c | 7 ++++--- dlls/winevulkan/vulkan.c | 2 +- dlls/winewayland.drv/vulkan.c | 7 ++++--- dlls/winex11.drv/vulkan.c | 7 ++++--- include/wine/vulkan_driver.h | 6 +++--- 6 files changed, 27 insertions(+), 23 deletions(-)
diff --git a/dlls/win32u/vulkan.c b/dlls/win32u/vulkan.c index f54a3a4bddc..361802d04c6 100644 --- a/dlls/win32u/vulkan.c +++ b/dlls/win32u/vulkan.c @@ -1374,9 +1374,9 @@ static void win32u_vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice instance->p_vkGetPhysicalDeviceExternalFenceProperties( physical_device->host.physical_device, fence_info, fence_properties ); }
-static const char *win32u_get_host_surface_extension(void) +static const char *win32u_get_host_extension( const char *name ) { - return driver_funcs->p_get_host_surface_extension(); + return driver_funcs->p_get_host_extension( name ); }
static struct vulkan_funcs vulkan_funcs = @@ -1426,7 +1426,7 @@ static struct vulkan_funcs vulkan_funcs = .p_vkQueueSubmit2KHR = win32u_vkQueueSubmit2, .p_vkUnmapMemory = win32u_vkUnmapMemory, .p_vkUnmapMemory2KHR = win32u_vkUnmapMemory2KHR, - .p_get_host_surface_extension = win32u_get_host_surface_extension, + .p_get_host_extension = win32u_get_host_extension, };
static VkResult nulldrv_vulkan_surface_create( HWND hwnd, const struct vulkan_instance *instance, VkSurfaceKHR *surface, @@ -1450,16 +1450,17 @@ static VkBool32 nulldrv_get_physical_device_presentation_support( struct vulkan_ return VK_TRUE; }
-static const char *nulldrv_get_host_surface_extension(void) +static const char *nulldrv_get_host_extension( const char *name ) { - return "VK_EXT_headless_surface"; + if (!strcmp( name, "VK_KHR_win32_surface" )) return "VK_EXT_headless_surface"; + return name; }
static const struct vulkan_driver_funcs nulldrv_funcs = { .p_vulkan_surface_create = nulldrv_vulkan_surface_create, .p_get_physical_device_presentation_support = nulldrv_get_physical_device_presentation_support, - .p_get_host_surface_extension = nulldrv_get_host_surface_extension, + .p_get_host_extension = nulldrv_get_host_extension, };
static void vulkan_driver_init(void) @@ -1474,7 +1475,7 @@ static void vulkan_driver_init(void) }
if (status == STATUS_NOT_IMPLEMENTED) driver_funcs = &nulldrv_funcs; - else vulkan_funcs.p_get_host_surface_extension = driver_funcs->p_get_host_surface_extension; + else vulkan_funcs.p_get_host_extension = driver_funcs->p_get_host_extension; }
static void vulkan_driver_load(void) @@ -1496,17 +1497,17 @@ static VkBool32 lazydrv_get_physical_device_presentation_support( struct vulkan_ return driver_funcs->p_get_physical_device_presentation_support( physical_device, queue ); }
-static const char *lazydrv_get_host_surface_extension(void) +static const char *lazydrv_get_host_extension( const char *name ) { vulkan_driver_load(); - return driver_funcs->p_get_host_surface_extension(); + return driver_funcs->p_get_host_extension( name ); }
static const struct vulkan_driver_funcs lazydrv_funcs = { .p_vulkan_surface_create = lazydrv_vulkan_surface_create, .p_get_physical_device_presentation_support = lazydrv_get_physical_device_presentation_support, - .p_get_host_surface_extension = lazydrv_get_host_surface_extension, + .p_get_host_extension = lazydrv_get_host_extension, };
static void vulkan_init_once(void) diff --git a/dlls/winemac.drv/vulkan.c b/dlls/winemac.drv/vulkan.c index 9f9e47bbb49..51d951139b9 100644 --- a/dlls/winemac.drv/vulkan.c +++ b/dlls/winemac.drv/vulkan.c @@ -99,16 +99,17 @@ static VkBool32 macdrv_get_physical_device_presentation_support(struct vulkan_ph }
static const char *host_surface_extension = "VK_MVK_macos_surface"; -static const char *macdrv_get_host_surface_extension(void) +static const char *macdrv_get_host_extension(const char *name) { - return host_surface_extension; + if (!strcmp( name, "VK_KHR_win32_surface" )) return host_surface_extension; + return name; }
static const struct vulkan_driver_funcs macdrv_vulkan_driver_funcs = { .p_vulkan_surface_create = macdrv_vulkan_surface_create, .p_get_physical_device_presentation_support = macdrv_get_physical_device_presentation_support, - .p_get_host_surface_extension = macdrv_get_host_surface_extension, + .p_get_host_extension = macdrv_get_host_extension, };
UINT macdrv_VulkanInit(UINT version, void *vulkan_handle, const struct vulkan_driver_funcs **driver_funcs) diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index 19d2ba7ef42..05dc8e44cd7 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -715,7 +715,7 @@ static VkResult wine_vk_instance_convert_create_info(struct conversion_context * } if (!strcmp(*extension, "VK_KHR_win32_surface")) { - *extension = vk_funcs->p_get_host_surface_extension(); + *extension = vk_funcs->p_get_host_extension("VK_KHR_win32_surface"); instance->enable_win32_surface = VK_TRUE; } } diff --git a/dlls/winewayland.drv/vulkan.c b/dlls/winewayland.drv/vulkan.c index 1715f479076..f342112aeba 100644 --- a/dlls/winewayland.drv/vulkan.c +++ b/dlls/winewayland.drv/vulkan.c @@ -81,16 +81,17 @@ static VkBool32 wayland_get_physical_device_presentation_support(struct vulkan_p process_wayland.wl_display); }
-static const char *wayland_get_host_surface_extension(void) +static const char *wayland_get_host_extension(const char *name) { - return "VK_KHR_wayland_surface"; + if (!strcmp( name, "VK_KHR_win32_surface" )) return "VK_KHR_wayland_surface"; + return name; }
static const struct vulkan_driver_funcs wayland_vulkan_driver_funcs = { .p_vulkan_surface_create = wayland_vulkan_surface_create, .p_get_physical_device_presentation_support = wayland_get_physical_device_presentation_support, - .p_get_host_surface_extension = wayland_get_host_surface_extension, + .p_get_host_extension = wayland_get_host_extension, };
/********************************************************************** diff --git a/dlls/winex11.drv/vulkan.c b/dlls/winex11.drv/vulkan.c index 61e4327e379..4ef37fe1db5 100644 --- a/dlls/winex11.drv/vulkan.c +++ b/dlls/winex11.drv/vulkan.c @@ -78,16 +78,17 @@ static VkBool32 X11DRV_get_physical_device_presentation_support( struct vulkan_p default_visual.visual->visualid ); }
-static const char *X11DRV_get_host_surface_extension(void) +static const char *X11DRV_get_host_extension( const char *name ) { - return "VK_KHR_xlib_surface"; + if (!strcmp( name, "VK_KHR_win32_surface" )) return "VK_KHR_xlib_surface"; + return name; }
static const struct vulkan_driver_funcs x11drv_vulkan_driver_funcs = { .p_vulkan_surface_create = X11DRV_vulkan_surface_create, .p_get_physical_device_presentation_support = X11DRV_get_physical_device_presentation_support, - .p_get_host_surface_extension = X11DRV_get_host_surface_extension, + .p_get_host_extension = X11DRV_get_host_extension, };
UINT X11DRV_VulkanInit( UINT version, void *vulkan_handle, const struct vulkan_driver_funcs **driver_funcs ) diff --git a/include/wine/vulkan_driver.h b/include/wine/vulkan_driver.h index 6a31bc75b5b..be2f5296082 100644 --- a/include/wine/vulkan_driver.h +++ b/include/wine/vulkan_driver.h @@ -47,7 +47,7 @@ struct vulkan_client_object #include "wine/rbtree.h"
/* Wine internal vulkan driver version, needs to be bumped upon vulkan_funcs changes. */ -#define WINE_VULKAN_DRIVER_VERSION 46 +#define WINE_VULKAN_DRIVER_VERSION 47
struct vulkan_object { @@ -257,7 +257,7 @@ struct vulkan_funcs PFN_vkUnmapMemory2KHR p_vkUnmapMemory2KHR;
/* winevulkan specific functions */ - const char *(*p_get_host_surface_extension)(void); + const char *(*p_get_host_extension)( const char *name ); };
/* interface between win32u and the user drivers */ @@ -266,7 +266,7 @@ struct vulkan_driver_funcs { VkResult (*p_vulkan_surface_create)(HWND, const struct vulkan_instance *, VkSurfaceKHR *, struct client_surface **); VkBool32 (*p_get_physical_device_presentation_support)(struct vulkan_physical_device *, uint32_t); - const char *(*p_get_host_surface_extension)(void); + const char *(*p_get_host_extension)( const char *name ); };
#endif /* WINE_UNIX_LIB */