Version 2.00 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android).
The major version bump is caused by a big change in how the code for reading device extension properties and features is generated. You can find a detailled rundown on how this works below.
You can download the new version from vulkan.gpuinfo.org/download.php.
Appimage for Linux
Deploying Qt applications on Linux is not as easy as on Windows, esp. when targeting recent versions. So from my now on instead of providing just the applications binary I’ll provide an appimage that is self-contained and should work on most distros out-of-the-box. I hope this will make it easier for Linux users to run the application.
Auto-generated extension code
Up until now I manually checked the Vulkan headers upon release for new extension property and feature structures and then added them by hand. That’s tedious and also error-prone, so I decided to ditch the manual approach for an automated process instead.
That’s possible as the whole Vulkan api spec is described by a single xml, which is also used to generate the official Vulkan headers. So I decided to write a small php script.
This parses the api spec xml for all extensions with structs that extend
VkPhysicalDeviceFeatures2, and will then generate a C++ header and implementation file ready to be used by the Vulkan Hardware Capability Viewer.
For example, the following extension and type definition from the api spec:
Into this C++ implementation:
So updating to the most recent version of the Vulkan specification is now much easier, and with the first 2.00 release all extensions up to Vulkan header version 1.1.121 are included.
Thanks to the change above, the application will now always support all extensions that are part of the spec. Compared to the last release, this version adds support for reading features and/or properties for the following extensions: