1# What Happened To The Vulkan Extension Loader? 2 3If you're looking for the files vulkan_ext.[ch] in this directory, they have 4been removed. There were two significant problems with these simple 5wrappers. 6 7First, vulkan_ext exported all extension entrypoints. However, the Vulkan 8loader also exports entrypoints for the window system integration 9extensions. If someone tried to compile a project and link it to both the 10loader and vulkan_ext, they would get a bunch of redefined symbols. This 11linking error is difficult to work around, because vulkan_ext does not have 12an easy method of disabling the entrypoints at compile time. It is possible 13to remove these entrypoints when generating vulkan_ext, but even then you 14have to manually compile a list of every single extension to be disabled. 15 16Second, each entrypoint is only stored once, regardless of how many 17instances or devices are created. This means that attempting to use multiple 18instances or devices in parallel can result in one device calling function 19pointers that are only valid on the other device, which will crash. You may 20be able to work around this by never initializing the device dispatch 21(vkExtInitDevice), but we haven't tried this. 22 23It is still possible to retrieve the last versions of these files in the 24Github KhronosGroup/Vulkan-Docs repository from the 'v1.1.75' release tag. 25It is also possible to regenerate them from ../../xml/vk.xml, although we 26are no longer maintaining the generator code and it may eventually stop 27working correctly. See README.adoc and the `extloader` Makefile target in 28that directory. 29