From 2ee7d3200bfdc48eebaf58af3bd19bde0dbc5884 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 8 Mar 2016 18:21:07 +0100 Subject: [PATCH] Add non-name-mangled alternative exports for layer entry point * On win32 __stdcall functions get name mangled even if C++ name mangling is disabled. --- renderdoc/driver/vulkan/vk_tracelayer.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_tracelayer.cpp b/renderdoc/driver/vulkan/vk_tracelayer.cpp index 2278f49a9..63d89cac1 100644 --- a/renderdoc/driver/vulkan/vk_tracelayer.cpp +++ b/renderdoc/driver/vulkan/vk_tracelayer.cpp @@ -165,6 +165,17 @@ VkResult getProps(uint32_t *dstCount, void *dstProps, uint32_t srcCount, void *s return VK_SUCCESS; } +#if defined(WIN32) && !defined(WIN64) + +// Win32 __stdcall will still mangle even with extern "C", set up aliases + +#pragma comment(linker, "/EXPORT:VK_LAYER_RENDERDOC_CaptureEnumerateDeviceLayerProperties=_VK_LAYER_RENDERDOC_CaptureEnumerateDeviceLayerProperties@12") +#pragma comment(linker, "/EXPORT:VK_LAYER_RENDERDOC_CaptureEnumerateDeviceExtensionProperties=_VK_LAYER_RENDERDOC_CaptureEnumerateDeviceExtensionProperties@16") +#pragma comment(linker, "/EXPORT:VK_LAYER_RENDERDOC_CaptureGetDeviceProcAddr=_VK_LAYER_RENDERDOC_CaptureGetDeviceProcAddr@8") +#pragma comment(linker, "/EXPORT:VK_LAYER_RENDERDOC_CaptureGetInstanceProcAddr=_VK_LAYER_RENDERDOC_CaptureGetInstanceProcAddr@8") + +#endif + extern "C" { VK_LAYER_EXPORT VkResult VKAPI_CALL VK_LAYER_RENDERDOC_CaptureEnumerateDeviceLayerProperties(