From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winevulkan/vulkan.c | 10 ++++++++++ dlls/winevulkan/vulkan_private.h | 1 + 2 files changed, 11 insertions(+)
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index 0a6224476e2..c8cb525929d 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -617,6 +617,10 @@ static VkResult wine_vk_instance_convert_create_info(struct conversion_context * { object->enable_wrapper_list = VK_TRUE; } + if (!strcmp(extension_name, "VK_KHR_win32_surface")) + { + object->enable_win32_surface = VK_TRUE; + } }
if (use_external_memory()) @@ -2285,6 +2289,12 @@ NTSTATUS vk_is_available_instance_function(void *arg) { struct is_available_instance_function_params *params = arg; struct wine_instance *instance = wine_instance_from_handle(params->instance); + + if (!strcmp(params->name, "vkCreateWin32SurfaceKHR")) + return instance->enable_win32_surface; + if (!strcmp(params->name, "vkGetPhysicalDeviceWin32PresentationSupportKHR")) + return instance->enable_win32_surface; + return !!vk_funcs->p_vkGetInstanceProcAddr(instance->host_instance, params->name); }
diff --git a/dlls/winevulkan/vulkan_private.h b/dlls/winevulkan/vulkan_private.h index 1697298a3d0..94eecc5e5d5 100644 --- a/dlls/winevulkan/vulkan_private.h +++ b/dlls/winevulkan/vulkan_private.h @@ -99,6 +99,7 @@ struct wine_instance struct wine_phys_dev **phys_devs; uint32_t phys_dev_count;
+ VkBool32 enable_win32_surface; VkBool32 enable_wrapper_list; struct list wrappers; pthread_rwlock_t wrapper_lock;