On Tue, Mar 27, 2018 at 3:40 PM, Józef Kucia <joseph.kucia(a)gmail.com> wrote:
On Tue, Mar 27, 2018 at 9:00 AM, Roderick Colenbrander <thunderbird2k(a)gmail.com> wrote:
Signed-off-by: Roderick Colenbrander <thunderbird2k(a)gmail.com> --- dlls/vulkan-1/vulkan.c | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-)
diff --git a/dlls/vulkan-1/vulkan.c b/dlls/vulkan-1/vulkan.c index b8db08a312..e3981b63ef 100644 --- a/dlls/vulkan-1/vulkan.c +++ b/dlls/vulkan-1/vulkan.c @@ -27,6 +27,32 @@
WINE_DEFAULT_DEBUG_CHANNEL(vulkan);
+static VkResult (WINAPI *p_vkEnumerateInstanceExtensionProperties)(const char *, uint32_t *, VkExtensionProperties *); +static void * (WINAPI *p_vk_icdGetInstanceProcAddr)(VkInstance, const char *); + +static BOOL vk_loader_init(void) +{ + HMODULE icd_handle = NULL; + + icd_handle = LoadLibraryA("winevulkan.dll"); + if (!icd_handle) + { + ERR("Failed to load Vulkan ICD (winevulkan.dll).\n"); + return FALSE; + } + + p_vk_icdGetInstanceProcAddr = (void *)GetProcAddress(icd_handle, "vk_icdGetInstanceProcAddr"); + if (!p_vk_icdGetInstanceProcAddr) + return FALSE;
Is there a reason to load winevulkan.dll dynamically? We could simplify code by linking to winevulkan.dll. Otherwise, we should probably take care of unloading winevulkan.dll, e.g. in case of failures.
Linking should be fine I think, easy to change.