Admittedly the development of low level graphics APIs is not exactly a sexy topic to the average user, including even some die hard gamers, but it's an important one all the same. These APIs make it possible for developers to better harness our GPUs and squeeze out the most performance possible. They can also lend themselves to producing prettier graphics. So, it's worth noting that Khronos Group has formally introduced Vulkan 1.2, the latest major update to its open-source, royalty-free graphics and compute API.
Vulkan 1.2 arrives nearly two years after the release of Vulkan 1.1, the last major update which introduced support for multiple GPUs. There's not really a standout feature associated with Vulkan 1.2. Instead, it is a compilation of 23 extensions released over the past couple of years, now neatly bundled into the core API specification.
Khronos Group might disagree with my assessment about there not being a standout feature, and point to timeline semaphores as one example. Fair enough, if you're a developer who understands what that is. If you want to get into the nuts and bolts of timeline semaphores, Khronos Group covers the topic in a blog post, though it's not exactly light reading.
"While some inconvenient limitations in the API remain, the timeline semaphore programming model should greatly reduce the need for host-side synchronization and the number of synchronization objects Vulkan applications are required to track, thereby reducing host-side stalls and application complexity, which should in turn increase performance and quality. As such, the Vulkan working group highly encourages all developers to make the switch to timeline semaphores for all coarse-grained synchronization purposes," Khronos Group explains.
Duly noted. Our friends at AnandTech offer an explainer that is somewhat easier to digest. In short, timeline semaphores are really important, as they provide a way to control access to shared resources and synchronize data across devices. In essence, it makes life easier on programmers for multi-threaded workloads.
Perhaps a bit more interesting is the added support for HLSL, Microsoft's shader language used in its own DirectX API. Khronos Group has its own shader language called GLSL, but adding full HLSL support is a big deal. It makes it easier for developers to code Vulkan games, as well as to port DX12 games without having to rewrite a bunch of code.
Every GPU that supports previous versions of Vulkan is capable of supporting Vulkan 1.2. And already five GPU vendors have Vulkan 1.2 implementations passing conformance tests, including AMD, Intel, and Nvidia. Going one step further, Nvidia has even released a beta GeForce 441.99 developer driver supporting Vulkan 1.2. AMD, meanwhile, says it will have a driver soon to bring Vulkan 1.2 support to its Radeon 5000 series, noting that the latest specification will help "deliver richer graphics experiences to end users."