Today marks the moment the Vulkan API is officially ready for ray tracing. The Khronos Group behind the open API has announced the final Vulkan Ray Tracing extensions, and that means there’s finally a firm alternative to Microsoft’s DirectX Raytracing API used extensively in ray-traced games today.
Integrated right into the existing Vulkan framework, the new Vulkan Ray Tracing is a set of extensions—Vulkan, SPIR-V, and GLSL—that allow developers to adopt ray tracing in games utilising the Vulkan API.
Vulkan is a hot ticket item amongst game developers due to its generally solid performance with fewer legacy or convoluted systems to weigh it down, but it’s also popular simply for the fact it’s not tied intrinsically to any single hardware or platform provider—unlike, say, its main competitor in the gaming API space, DirectX 12.
DirectX 12 Ultimate comes with DirectX Raytracing (DXR), which affords game developers access to compatible ray tracing hardware in the latest graphics cards. And now Vulkan offers a fully-fledged alternative.
Vulkan Ray Tracing supports both dedicated ray tracing acceleration cores and general GPU compute workloads. That means both those GPUs fitted with RT Cores and Ray Accelerators, Nvidia’s RTX 20-series and 30-series and AMD’s RX 6000-series, respectively; and non-accelerated GPUs will be able to run Vulkan ray tracing workloads. Although we all know how well that will function on the latter for the most part.
Vulkan Ray Tracing isn’t entirely new to Nvidia GPUs, however. Alongside early efforts to get Vulkan Ray Tracing up-and-running, Nvidia created a vendor-specific extension, VK_NV_ray_tracing, which allowed for Vulkan developers to take advantage of Nvidia graphics cards and the full extent of ray tracing in their games. Wolfenstein Youngblood is a prime example of such a game.
The new VH_KHR_ray_tracing extension will partially replace Nvidia’s own Vulkan extension, and offers the same functionality « albeit with some changes and additions », as the changelog notes.
The new extension essentially adds the following, which in turn makes ray tracing a reality:
- Functionality for acceleration structure building and management
- Support for ray tracing shader stages and pipelines
- Ray query intrinsics for all shader stages
The other benefit of a native and hardware agnostic extension is that it will allow developers to make use of AMD ray tracing silicon, specifically the Ray Accelerators found within the brand new RX 6800, RX 6800 XT, and, soon, the RX 6900 XT, with Vulkan developed games.
As of today, most DirectX Raytracing games support ray tracing acceleration out of the box and no matter your choice of silicon, with the notable (and frankly odd) exceptions of Cyberpunk 2077 and Godfall—two games promising to introduce DXR later down the line, for AMD and Nvidia GPUs respectively.
Here’s hoping that’s down to developmental blues as opposed to a coup d’etat for ray tracing domination by either side. I’d like to think that’s the case, anyways. It’s in everyone’s best interests to get ray tracing off the ground as a wholly-supported venture.
And Vulkan Ray Tracing goes a long way to realising that goal.
Nvidia has drivers ready to roll to support the new extensions, while AMD has a beta branch of its drivers with preliminary support. There’s also Intel Xe-HPG GPU drivers coming in 2021, at which point we’ll see a three-way race to ray tracing in Vulkan.