winevulkan: Expose driver vkGetInstanceProcAddr via winevulkan exports.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2018-07-27 15:30:49 +02:00 committed by Alexandre Julliard
parent 87e527be4a
commit bea52787d6
3 changed files with 12 additions and 0 deletions

View File

@ -2282,6 +2282,7 @@ class VkGenerator(object):
self._generate_copyright(f, spec_file=True) self._generate_copyright(f, spec_file=True)
f.write("@ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr\n") f.write("@ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr\n")
f.write("@ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion\n") f.write("@ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion\n")
f.write("@ cdecl -norelay native_vkGetInstanceProcAddrWINE(ptr str)\n")
# Export symbols for all Vulkan Core functions. # Export symbols for all Vulkan Core functions.
for func in self.registry.funcs.values(): for func in self.registry.funcs.values():

View File

@ -1163,3 +1163,13 @@ static void *wine_vk_get_global_proc_addr(const char *name)
} }
return NULL; return NULL;
} }
/*
* Wrapper around driver vkGetInstanceProcAddr implementation.
* Allows winelib applications to access Vulkan functions with Wine
* additions and native ABI.
*/
void *native_vkGetInstanceProcAddrWINE(VkInstance instance, const char *name)
{
return vk_funcs->p_vkGetInstanceProcAddr(instance, name);
}

View File

@ -36,6 +36,7 @@
@ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr @ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr
@ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion @ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion
@ cdecl -norelay native_vkGetInstanceProcAddrWINE(ptr str)
@ stdcall wine_vkAcquireNextImage2KHR(ptr ptr ptr) @ stdcall wine_vkAcquireNextImage2KHR(ptr ptr ptr)
@ stdcall wine_vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr) @ stdcall wine_vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr)
@ stdcall wine_vkAllocateCommandBuffers(ptr ptr ptr) @ stdcall wine_vkAllocateCommandBuffers(ptr ptr ptr)