Use Vulkan application, instance, and device versions accurately
- Dominant language
- C++
- Stars
- 228
- Forks
- 77
- PR merge metrics
- No merged PRs in 30d
Description
The Vulkan API version at various points is more complex than it might seem intuitively. There is not just one number we need to check.
(Edited to add VkPhysicalDevice version and use tables.)
### To use core functionality:
Functionality type
Must be supported by the...
Instance-level
Instance version
Physical-device-level
Physical device version
Device-level
Physical device version
### To use extension functionality:
Functionality type
Must be supported by the...
Instance-level (from an instance extension)
The instance (vkEnumerateInstanceExtensionProperties)
Physical-device-level (from an instance extension)
The instance (vkEnumerateInstanceExtensionProperties)
Physical-device-level (from a device extension)
The physical device. Requires both the instance and physical device versions to be at least 1.1, or the `VK_KHR_get_physical_device_properties2` extension. Then the app calls `vkEnumerateDeviceExtensionProperties(VkPhysicalDevice, ...)` to enumerate the device extension for the physical device, then uses `vkGetInstanceProcAddr` to get function pointers (where the functions are from one of the enumerated device extensions and have a first arg of type VkPhysicalDevice).
Device-level (from a device extension)
The physical device (vkEnumerateDeviceExtensionProperties)
Contributor guide
Assessment
This issue has not been assessed yet.