Tags: sugoi1/Vulkan-Loader
Tags
Revert to old behavior in GIPA for old apps Vulkan header updated 1.2.193 changed the behavior of vkGetInstanceProcAddr for global entrypoints. They used to always be returned regardless of the value of the instance paramtere. The spec was amended in this version to only allow querying global level entrypoints with a NULL instance. However, as to not break old applications, the new behavior is only applied if the instance passed in is both valid and minor version is greater than 1.2, which was when this change in behavior occurred. Only instances with a newer version will get the new behavior.
Dont call ToolProps on drivers without support The loader recently added support for calling into drivers in vkGetPhysicalDeviceToolPropertieesEXT. However, it only used the value of the function pointer to determine if it was safe. It was found that Mesa drivers will return a non-null function pointer, even though they do not support the extension, and so the loader called this function pointer which would then segfault. The loader prevents this by first checking if the extension is supported by the physical device. This necessitates calling vkEnumerateDeviceExtensionProperties and allocating some memory on each call but since the number of times this function is called should be low, it is not an undue performance burden. In the future, the loader should cache the list of extensions when calling vkEnumeratePhysicalDevices so that checking if a extension function is supported is fast and easy.
PreviousNext