-
Notifications
You must be signed in to change notification settings - Fork 291
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PFN_GetPhysicalDeviceProcAddr has C++ interface. #7
Comments
Comment by lenny-lunarg (MIGRATED) It looks like there's some weird stuff going on with these functions, in general. I think the missing
But when I comment out the declaration in
As a result, I don't think this has anything to do wih the declaration for PFN_vkGetInstanceProcAddr being wrapped by
I have no explanation for why this happens. The fact that |
Comment by stroyan (MIGRATED) There are two different matters that the c++ name mangling brings into question. The *PRETTY_FUNCTION symbols seem to be harmless. They are string constants that result from function name identifiers like PRETTY_FUNCTION |
I'm closing this as this doesn't apply to this repo. If people are interested in this, they can reopen the issue in the Vulkan-Headers repo. As for the immediate issue, a function pointer shouldn't need extern "C" and if you look at the vulkan header, it doesn't use them. At the very least we're being consistent. |
Issue by stroyan (MIGRATED)
Tuesday Jan 09, 2018 at 16:29 GMT
Originally opened as KhronosGroup/Vulkan-LoaderAndValidationLayers#2330
When PFN_GetPhysicalDeviceProcAddr was added to vk_icd.h and vk_layer.h in commit b5f087a it was done without an extern "C" declaration.
The pfnGetPhysicalDeviceProcAddr member in struct VkNegotiateLayerInterface and the vk_layerGetPhysicalDeviceProcAddr functions in validation layers are all using C++ interfaces.
It will be awkward to change to a C binding now. But it will be troubling to use a C++ binding forever.
$ nm ~/Downloads/VulkanSDK/1.0.46.0/x86_64/lib/libVkLayer_threading.so | grep vk_layerGetPhysicalDeviceProcAddr
000000000001f2b0 T _Z33vk_layerGetPhysicalDeviceProcAddrP12VkInstance_TPKc
The text was updated successfully, but these errors were encountered: