From: Rémi Bernon rbernon@codeweavers.com
--- dlls/win32u/vulkan.c | 10 +++++----- dlls/winevulkan/vulkan.c | 12 ++++++------ include/wine/vulkan_driver.h | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/dlls/win32u/vulkan.c b/dlls/win32u/vulkan.c index 451a27ac833..2f852fc683b 100644 --- a/dlls/win32u/vulkan.c +++ b/dlls/win32u/vulkan.c @@ -139,21 +139,21 @@ static VkResult win32u_vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR return res; }
-static PFN_vkVoidFunction win32u_vkGetDeviceProcAddr( VkDevice device, const char *name ) +static PFN_vkVoidFunction win32u_vkGetDeviceProcAddr( struct vulkan_device *device, const char *name ) { TRACE( "device %p, name %s\n", device, debugstr_a(name) );
if (!strcmp( name, "vkGetDeviceProcAddr" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkGetDeviceProcAddr; if (!strcmp( name, "vkQueuePresentKHR" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkQueuePresentKHR;
- return p_vkGetDeviceProcAddr( device, name ); + return p_vkGetDeviceProcAddr( device->host.device, name ); }
-static PFN_vkVoidFunction win32u_vkGetInstanceProcAddr( VkInstance instance, const char *name ) +static PFN_vkVoidFunction win32u_vkGetInstanceProcAddr( struct vulkan_instance *instance, const char *name ) { TRACE( "instance %p, name %s\n", instance, debugstr_a(name) );
- if (!instance) return p_vkGetInstanceProcAddr( instance, name ); + if (!instance) return p_vkGetInstanceProcAddr( NULL, name );
if (!strcmp( name, "vkCreateWin32SurfaceKHR" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkCreateWin32SurfaceKHR; if (!strcmp( name, "vkDestroySurfaceKHR" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkDestroySurfaceKHR; @@ -164,7 +164,7 @@ static PFN_vkVoidFunction win32u_vkGetInstanceProcAddr( VkInstance instance, con if (!strcmp( name, "vkGetDeviceProcAddr" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkGetDeviceProcAddr; if (!strcmp( name, "vkQueuePresentKHR" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkQueuePresentKHR;
- return p_vkGetInstanceProcAddr( instance, name ); + return p_vkGetInstanceProcAddr( instance->host.instance, name ); }
static VkSurfaceKHR win32u_wine_get_host_surface( VkSurfaceKHR handle ) diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index c1ed44fbdda..c017696953b 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -941,7 +941,7 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice client_physical_device, const VkDe * as functions pass through fewer dispatch tables within the loader. */ #define USE_VK_FUNC(name) \ - device->obj.p_##name = (void *)vk_funcs->p_vkGetDeviceProcAddr(device->obj.host.device, #name); \ + device->obj.p_##name = (void *)vk_funcs->p_vkGetDeviceProcAddr(&device->obj, #name); \ if (device->obj.p_##name == NULL) TRACE("Not found '%s'.\n", #name); ALL_VK_DEVICE_FUNCS #undef USE_VK_FUNC @@ -1004,7 +1004,7 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, * ICD may support. */ #define USE_VK_FUNC(name) \ - instance->obj.p_##name = (void *)vk_funcs->p_vkGetInstanceProcAddr(instance->obj.host.instance, #name); + instance->obj.p_##name = (void *)vk_funcs->p_vkGetInstanceProcAddr(&instance->obj, #name); ALL_VK_INSTANCE_FUNCS #undef USE_VK_FUNC
@@ -2555,14 +2555,14 @@ NTSTATUS vk_is_available_instance_function(void *arg) if (!strcmp(params->name, "vkGetPhysicalDeviceWin32PresentationSupportKHR")) return instance->enable_win32_surface;
- return !!vk_funcs->p_vkGetInstanceProcAddr(instance->obj.host.instance, params->name); + return !!vk_funcs->p_vkGetInstanceProcAddr(&instance->obj, params->name); }
NTSTATUS vk_is_available_device_function(void *arg) { struct is_available_device_function_params *params = arg; struct vulkan_device *device = vulkan_device_from_handle(params->device); - return !!vk_funcs->p_vkGetDeviceProcAddr(device->host.device, params->name); + return !!vk_funcs->p_vkGetDeviceProcAddr(device, params->name); }
#endif /* _WIN64 */ @@ -2575,7 +2575,7 @@ NTSTATUS vk_is_available_instance_function32(void *arg) UINT32 name; } *params = arg; struct vulkan_instance *instance = vulkan_instance_from_handle(UlongToPtr(params->instance)); - return !!vk_funcs->p_vkGetInstanceProcAddr(instance->host.instance, UlongToPtr(params->name)); + return !!vk_funcs->p_vkGetInstanceProcAddr(instance, UlongToPtr(params->name)); }
NTSTATUS vk_is_available_device_function32(void *arg) @@ -2586,5 +2586,5 @@ NTSTATUS vk_is_available_device_function32(void *arg) UINT32 name; } *params = arg; struct vulkan_device *device = vulkan_device_from_handle(UlongToPtr(params->device)); - return !!vk_funcs->p_vkGetDeviceProcAddr(device->host.device, UlongToPtr(params->name)); + return !!vk_funcs->p_vkGetDeviceProcAddr(device, UlongToPtr(params->name)); } diff --git a/include/wine/vulkan_driver.h b/include/wine/vulkan_driver.h index a81ad72cc5d..a6a7fa4d3da 100644 --- a/include/wine/vulkan_driver.h +++ b/include/wine/vulkan_driver.h @@ -159,8 +159,8 @@ struct vulkan_funcs */ PFN_vkCreateWin32SurfaceKHR p_vkCreateWin32SurfaceKHR; PFN_vkDestroySurfaceKHR p_vkDestroySurfaceKHR; - PFN_vkGetDeviceProcAddr p_vkGetDeviceProcAddr; - PFN_vkGetInstanceProcAddr p_vkGetInstanceProcAddr; + PFN_vkVoidFunction (*p_vkGetDeviceProcAddr)(struct vulkan_device *,const char *); + PFN_vkVoidFunction (*p_vkGetInstanceProcAddr)(struct vulkan_instance *,const char *); PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR p_vkGetPhysicalDeviceWin32PresentationSupportKHR; VkResult (*p_vkQueuePresentKHR)(VkQueue, const VkPresentInfoKHR *, VkSurfaceKHR *surfaces);