From: Aida JonikienÄ— aidas957@gmail.com
32-bit DXVK doesn't find the surface creation function without this. --- dlls/winevulkan/vulkan.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index f6de197f720..61b3a42d63f 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -2144,8 +2144,14 @@ NTSTATUS vk_is_available_instance_function32(void *arg) UINT32 instance; 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)); + struct wine_instance *instance = wine_instance_from_handle(UlongToPtr(params->instance)); + + if (!strcmp(UlongToPtr(params->name), "vkCreateWin32SurfaceKHR")) + return instance->enable_win32_surface; + if (!strcmp(UlongToPtr(params->name), "vkGetPhysicalDeviceWin32PresentationSupportKHR")) + return instance->enable_win32_surface; + + return !!vk_funcs->p_vkGetInstanceProcAddr(instance->obj.host.instance, UlongToPtr(params->name)); }
NTSTATUS vk_is_available_device_function32(void *arg)