vulkaninfo is very useful for capturing what an implementation supports. However, because it doesn't enable all the instance extensions the implementation advertises it causes many device extensions to not be advertised.
There is the following in the Vulkan specification (https://docs.vulkan.org/spec/latest/chapters/extensions.html):
Any device extension that has an instance extension dependency that is not enabled by vkCreateInstance is considered to be unsupported, hence it must not be returned by vkEnumerateDeviceExtensionProperties for any VkPhysicalDevice child of the instance.
For example, when running vulkaninfo on our implementation the VK_EXT_device_address_binding_report device extension is hidden because vulkaninfo doesn't enable the dependent VK_EXT_debug_utils instance extension.
You can see that dependency in the vk.xml:
<extension name="VK_EXT_device_address_binding_report" number="355" type="device" depends="(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_debug_utils" author="EXT" contact="Ralph Potter gitlab:@r_potter" specialuse="debugging,devtools" supported="vulkan" ratified="vulkan">
For our implementation on Windows, this dependency issue hides:
- VK_EXT_device_address_binding_report requires VK_EXT_debug_utils
- VK_KHR_swapchain_maintenance1 requires VK_KHR_swapchain+VK_KHR_surface_maintenance1
- VK_NV_acquire_winrt_display requires VK_EXT_direct_mode_display
- VK_NV_external_memory, VK_NV_external_memory_win32 and VK_NV_win32_keyed_mutex require VK_NV_external_memory_capabilities
Note that the NVIDIA implementation only recently implemented the Vulkan specification rule pasted above.
vulkaninfo is very useful for capturing what an implementation supports. However, because it doesn't enable all the instance extensions the implementation advertises it causes many device extensions to not be advertised.
There is the following in the Vulkan specification (https://docs.vulkan.org/spec/latest/chapters/extensions.html):
For example, when running vulkaninfo on our implementation the
VK_EXT_device_address_binding_reportdevice extension is hidden because vulkaninfo doesn't enable the dependentVK_EXT_debug_utilsinstance extension.You can see that dependency in the vk.xml:
For our implementation on Windows, this dependency issue hides:
Note that the NVIDIA implementation only recently implemented the Vulkan specification rule pasted above.