Closed caiovpsilveira closed 5 months ago
Fixed.
With tr3v1n comment on r/Vulkan:
If you want to use an extension that has been promoted in the version of Vulkan you are using, you have to drop the KHR bit from it. The dynamic dispatcher does this, and the promoted version's function pointer will have the extension version if you load the extension on older versions of Vulkan as a fallback. VMA takes a similar approach when it does the function pointer loading, too.
Hi, I have a question about the usage of VulkanMemoryAllocator with the DispatchLoaderDynamic. I'm using the default dispatcher.
From the VMA documentation, it mentions that there are three ways of
Importing Vulkan functions
. In my understanding theDispatchLoaderDynamic
behaves exactly likeVolk
, so I tried using the third method.I tried the following:
Then, when creating the VmaVulkanFuncs, I populated all members of the structure:
However, when creating the vmaAllocator, I get the following assertion:
This is not the first function pointer checked, so the others must be valid retrieved from the dispatcher. My question is what is happening?
If, instead, I swap to using the second method pointed in the VMA documentation:
Then the assertion is not triggered, I don't know the details of how VMA handles it internally.
Am I doing something wrong, or it this an issue with the VMA or what? I'm confused. In the second case there both the VMA and the DispatchLoaderDynamic are fetching the function ptrs? Isn't this redundant?