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.
QuoteTomorrow at 4pm GMT, PS5 lead system architect Mark Cerny provides a deep dive into PS5’s system architecture and how it will shape the future of games.https://twitter.com/PlayStationUK/status/1239885256888590344
Any hope for Linux and Vulkan? Can you imagine what the boom will be? :D
However this can also explain why Apple staunchly refuse to support Vulkan in general:
QuoteMS [Maciej Stachowiak]: Apple is not comfortable working under Khronos IP framework, because of dispute between Apple Legal & Khronos which is private. Can’t talk about the substance of this dispute. Can’t make any statement for Apple to agree to Khronos IP framework.
In typical Apple fashion, they mess things up for everyone and refuse to explain the reason.
Last edited by Shmerl on 17 March 2020 at 5:57 pm UTC
And native still works (dirt 4)
Quoting: GuestI'm going to guess there will need to be some level of hardware support for ray tracing (purely a guess on my part - I've not looked into the details yet).Apparently it supports pure hardware raytracing, GPU compute, and (I may be imagining this part) even CPU. So it should work on anything, although good luck trying it without at least a half-decent non-RTX card.
Quoting: GuestSounds awesome. Now there is only to hope to be able to play games such as Quake 2 RTX or Metro Exodus with an AMD card when they arrive. But i guess they would need an Update to work with AMD? At least Quake 2 come on Nvidia let the Red team also have fun with it :P
May be drivers can implement shims for Nvidia extensions to route them to standard ones. But ideally yes, games would need to start using the standard ones on their own.
Quoting: subIs this targeting dedicated RT hardware or generic compute resources?
That is up to the respective driver to decide, this is just to provide a common API to applications.
Is it a valid claim?
See more from me