Vulkan 1.1 Released As The First Major Update To This Graphics/Compute API
The Khronos Group has today announced Vulkan 1.1 as the first major update to this high-performance graphics/compute API since the initial Vulkan 1.0 release two years ago. And it's thankfully a hard launch with multiple vendors putting out Vulkan 1.1 conformant drivers today.
Coming just one week after the big macOS/iOS push with the opening of MoltenVK, The Khronos Group is ready today with Vulkan 1.1 -- just in time for the Game Developers' Conference (GDC 18) happening later this month where it was widely expected that The Khronos Group would have some sort of announcement(s) pertaining to Vulkan. Coming along with the Vulkan 1.1 release today is the SPIR-V 1.3 release, the updated intermediate representation used by Vulkan as well as OpenCL and can be ingested by OpenGL with v4.6.
The new functionality in Vulkan 1.1 is a bit light as the main focus of this new version is to promote existing functionality to core Vulkan. A lot of new extensions were introduced during the many Vulkan 1.0.x point releases while now a good set of them have graduated to becoming a core part of the functionality. But what we have new to Vulkan 1.1 is support for protected content and sub-group operations.
Protected content in Vulkan is akin to EXT_protected_textures or EGL_EXT_protected_content from OpenGL/EGL. This is mainly about allowing restrictions on resources used for rendering for secure content playback and displaying say protected multimedia video content. Certainly not something that many Linux/open-source fans will find exciting, but not too concerning since after all the protected extensions to OpenGL/EGL didn't really cause any major lock-downs or concerns for free software purists to battle.
The other addition, and arguably most exciting, is support for subgroup operations with Vulkan 1.1. Subgroup operations allow for parallel shader invocations to communicate. Vulkan extension updates from different vendors did provide some subgroup support like with shader ballot, sub-group vote, etc, but now there's a proper implementation ready for core Vulkan. This is important for performance and also useful in many compute scenarios.
When it comes to the extensions being promoted to core Vulkan 1.1, there is a lot. Now part of Vulkan 1.1 core are multi-view, device groups, cross-process and cross-API sharing, advanced compute functionality, HLSL support, and YCbCr support. The multi-view and cross-API extensions are important for VR and the extensions were already in use by Valve's Steam VR compositor. The device groups have me most excited with the multi-GPU related extensions now being part of core: hopefully this will lead to more developers making use of these extensions now for allowing multi-GPU support akin to NVIDIA SLI or AMD CrossFire... While the extensions have been around since last year and require minimal work for exploiting multi-GPU capabilities, now that they are part of Vulkan core hopefully we will see much greater adoption.
The HLSL related support in Vulkan 1.1 core is also important for better interoperability with code-bases already targeting Direct3D 12 and for the projects that are pursuing Vulkan portability for potentially getting the Vulkan API running atop D3D12.
Vulkan 1.1 is a hard launch with LunarG's Vulkan tooling being updated today for v1.1 as well as other related projects. Vendors already with conformant Vulkan 1.1 drivers are AMD, ARM, Imagination, Intel, NVIDIA, and Qualcomm. NVIDIA has already confirmed to us they will be releasing their Vulkan 1.1 drivers for Windows/Linux today. There's been no communication yet from AMD if they will be putting out a new AMDGPU-PRO release today or updating their AMDVLK code-base: it will be interesting to see if the Red Hat / Google developers working on RADV have patches to show today. Intel will presumably be posting new ANV Vulkan driver patches today as well since they have proven to be quite punctual with their Vulkan updates.
Moving forward, The Khronos Group will continue issuing point releases / minor updates to Vulkan 1.1 just as they did for the Vulkan 1.0 series. As far as when they will release Vulkan 1.2/2.0 or whatever it may be called, Neil Trevett communicated to us that it's really feature-driven and all determined by what the working group comes up with and developer demand but that they aren't necessarily pursuing a two-year release cadence or any other timed released schedule. While there was previous communication of OpenCL and Vulkan potentially crossing paths more tightly, he also reassured us that OpenCL will continue to move forward in its own trajector while there will obviously be some overlap, nothing is happening to that API anytime soon.
Overall Vulkan 1.1 is a nice update with having support for subgroup operations (and protected content) while promoting a lot of new extensions to Vulkan 1.1 core around extensions important for VR, better interoperability with Direct3D 12, SPIR-V 1.3, and the multi-GPU extensions are now also part of core.
If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.