Skip to content
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

Use vkGetInstanceProcAddr and vkGetDeviceProcAddr #17

Open
amerkoleci opened this issue May 28, 2018 · 4 comments
Open

Use vkGetInstanceProcAddr and vkGetDeviceProcAddr #17

amerkoleci opened this issue May 28, 2018 · 4 comments

Comments

@amerkoleci
Copy link
Contributor

At the moment vulkan symbols are loaded used GetProcAddress on Windows and dlsym on other platforms, I think it makes sense to replace with above as volk loader for example:

https://github.com/zeux/volk

@mellinoe
Copy link
Owner

I actually have a branch where I tried out vkGetDeviceProcAddr, since it's supposed to be measurably faster. However, I found that it was only about 1% faster. That kind of discouraged me, so I put the branch aside and haven't looked at it in a bit. I would like to support that in some way, though.

@amerkoleci
Copy link
Contributor Author

I see, anyway I think it makes sense go throught standard way of loading vulkan proc entries, I can send PR if you want?

@PJB3005
Copy link

PJB3005 commented Jun 12, 2019

I'm trying to use vkCreateDebugReportCallbackEXT with this library, but it's causing a segfault. The symbol isn't available in /lib/libvulkan.so.1 so the library fails to load it (and tries to jump into a null pointer) but it is available through vkGetInstanceProcAddr.

I figured this is relevant to this issue.

@mellinoe
Copy link
Owner

@PJB3005 Yes, that's definitely an issue. Any extension functions generally need to be loaded manually as they aren't statically exported. Veldrid has to do this for the debug extension and a handful of other extension functions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants