The Khronos Group has today announced that the cross-platform Vulkan graphics API now has official Ray Tracing support with their new provisional extensions.
Vulkan already had Ray Tracing support before with NVIDIA, as they had their own extensions which you could see working on titles like Quake II RTX (we showed it off here). Now though, after discussions and planning NVIDIA helped get it into Vulkan officially for all vendors to use in future.
"There has been strong developer demand for a truly cross-platform ray tracing acceleration API and now Vulkan Ray Tracing is here to meet that industry need," said Daniel Koch, senior graphics system software engineer at NVIDIA and Vulkan Ray Tracing task sub group chair at Khronos. "The overall architecture of Vulkan Ray Tracing will be familiar to users of existing proprietary ray tracing APIs, which enables straightforward porting of existing ray traced content, but this framework also introduces new functionality and implementation flexibility."
Slide Source: The Khronos Vulkan Ray Tracing presentation.
While it has a number of extensions across Vulkan, SPIR-V, and GLSL the primary one is VK_KHR_ray_tracing, which provides support for acceleration structure building and management, ray tracing shader stages and pipelines, and ray query intrinsics for all shader stages.
You can see the official press release here from The Khronos Group.
Linking in with that, as expected from NVIDIA they already have a Vulkan Beta Driver out and ready to try out with support for all of this. The Linux 440.66.02 driver can be found here with all this new:
- Multi-vendor Vulkan ray tracing
- For details see the new device generated command developer blog
- Replaces the now deprecated VK_NVX_device_generated_commands
- Added support for a new device-local VkMemoryType which is host-coherent and host-visible
In regards to the last point in the above list for "device-local VkMemoryType", NVIDIA said this could give a performance boost in some cases (especially for DXVK). Not a massive increase, mostly single digit percentage boost but some special cases are up to 10%. For all other driver support, you can follow their tracker on GitHub. For the open source Mesa drivers, I would expect support for Intel/AMD to arrive in one of the next major updates this year.
Keep in mind that the specification is provisional, meaning they're looking for feedback and plenty of tweaks and changes may come still. These can include breaking changes, so none of this should be used in production just yet until it's fully finalized.
Since the next generation of game consoles are coming close with Ray Tracing support, and AMD have their upcoming RDNA 2 based GPUs for PC which will feature Ray Tracing too we're likely getting close to a big uptick in the amount of games using it. With Vulkan being cross-platform across Linux, Windows, some consoles, macOS (via MoltenVK), mobiles and more that with official Ray Tracing perhaps more developers will opt for it. It's good news for Linux anyway.