Vulkan graphics API receives major 1.1 update
A little over two years since the launch of Vulkan 1.0, the Khronos group has launched its first major revision to its cross platform graphics API. Vulkan 1.1 offers two major new features, support for protected content on the GPU and subgroup operations, as well as bringing a number of previous popular Vulkan extensions into the core.
Starting with the main features, the introduction of Protected Content is exactly what it sounds like. DRM-protected content — such as video — can now be composited on the GPU without the potential to screengrab decoded frames. In other words, the GPU is restricted from copying data from restricted areas in memory, which is handy if you have content that you want to protect.
Subgroup Operations is the other major new feature which takes GPU parallelism up a notch thanks to expanded SPIR-V 1.3 capabilities. It enables efficient sharing and manipulation of data between a GPUs parallel tasks, such as adding values between tasks, cluster multiplication, or even broadcasting a result to other tasks. This can be used to speed up some rendering as well as compute applications, but also has benefits for inference and neural networking processing loads, which has become a major trend across mobile and desktop computing.
Both of these new features require some new hardware, however as they’ve both been rather sought after by GPU vendors a number of chips already pass the compliance test and simply need driver updates. More on that later.
As for all of the newly integrated hardware extensions, these are primarily focused on supporting increasingly popular use cases like mixed and virtual reality, and compute workloads. Multiview speeds up VR rendering by allowing a single pass to render multiple viewpoints. Cross-processor and Cross-API sharing allows multiple API to share memory within a single application, such as processing images in Vulkan and OpenGL ES. 16-bit read and write to increase support for GPU compete kernels and is enabling OpenCL C to work with Vulkan. There’s also HLSL shader support across Vulkan and Microsoft’s DirectX, and YCbCr texture support.
Bringing these extensions into the core is rather important, as this is when the vast majority of developers begin to make use of them. So rather than being optional extras used in some use cases, these are now core functions that will appear more regularly.
In addition to the new API features, there’s also been some big growth in open source development tools for Vulkan. For example, the LunarG Vulkan SDK and tools layers have been upgraded to include the Vulkan Layer Factory (VLF) for rapid layer development, the Device Simulation Layer to simulate target device capabilities, and the new Assistant Layer to guide developers to best practices.
For us mobile users, Arm and Qualcomm are already compliant with Vulkan 1.1, so some of the latest Mali and Adreno GPUs inside our smartphone SoCs should be ready to support the latest version of the API with driver updates. However, we will have to wait for smartphone manufacturers and carriers to rollout updates before software can made use of these changes. Alternatively, future smartphones will hopefully ship with Vulkan 1.1 out of the box. Desktop graphics giants AMD and Nvidia are also onboard, of course, along with Imagination Technologies and Intel.