The day has arrived, along with the release of Vulkan 1.2.162 being tagged in the Vulkan-Docs repository on GitHub the Vulkan Ray Tracing extensions are now officially released. From being announced as a provisional set in March 2020, The Khronos Group formally announced it's done.
"Welcome to the era of portable, cross-vendor, cross-platform ray tracing acceleration!" - Daniel Koch, NVIDIA
With Vulkan 1.2.162 being tagged a few hours ago, the changelog shows these new extensions being available along with the official Vulkan Ray Tracing release:
- VK_KHR_acceleration_structure
- VK_KHR_ray_tracing_pipeline
- VK_KHR_ray_query
- VK_KHR_pipeline_library
- VK_KHR_deferred_host_operations
This is a huge step forwards for the Vulkan API! Now having a vendor-neutral set of Ray Tracing abilities. This means AMD, NVIDIA and Intel will all be supporting Ray Tracing with Vulkan. For Linux that's especially good, since on Windows you already have DirectX Raytracing (DXR). On Linux, we did have the NVIDIA Ray Tracing with their own extensions since NVIDIA 410.57 in 2018 but now at least we have something all hardware vendors can and will use.
They mentioned that this is just the start, with the full ecosystem of supporting toolkits and validation layers to all get updates to support it. You can follow updates to the ecosystem being updated here.
They've also confirmed that the overall functionality has been unchanged since the provisional release. However, there are still some differences like VK_KHR_ray_tracing being split into three extensions (linked in the list above). There's a few other changes, including those requested by developers of translation layers. See the full announcement for all the info.
Going along with it NVIDIA have released the Vulkan Beta Driver 455.46.02 to support it. NVIDIA also released an updated Vulkan Ray Tracing tutorial and their Nsight Graphics tool version 2020.6 is also out with added support for the new Vulkan Ray Tracing extensions. Meanwhile, Intel will have support for it in 2021 with the release of their dedicated Xe-HPG GPUs, AMD have a Windows driver up for it today but no mention of a fresh Radeon Software for Linux update yet - it's likely the new Mesa 20.3 open source driver update will work with it when it's released soon.
Update 23/11/20, 2PM UTC - The Khronos Group has now formally announced it. The article was updated to reflect this.
Any indication from anywhere what the hold up was? I'd imagine that AMD and Intel not having hardware to support it would have left the aims of the extension fuzzy at the beginning, but they'd have known what was going into their silicon a long time ago. Was it an oversight? Or some tricky problem that needed solving?Apple have been such tools about this stuff.
Still, I'm glad it's finally here, and hopefully the delay hasn't lost Vulkan critical time with developer mindshare relative to DirectX 12.
Edit:
They've also confirmed that the overall functionality has been unchanged since the provisional release.
Ugh. So they just told everyone not to use it for 8 months for literally no reason. Great.
Edit 2:
So, reading through the notes it seems that the problem was trying to have both easy mapping from DXR to Vulkan and easy mapping of Vulkan to Metal. It turns out that they can't have both, and they've decided to ditch Metal. That makes sense for our use-case, but it sucks for Khronos, since MoltenVK was an explicit target for them. I can see why they wouldn't want to take that decision quickly.
Apple have been such tools about this stuff.They really really don't like having their destiny under someone else's control. Which isn't that surprising, given the history of the company. But it does make them somewhat difficult to work with.
I am pretty sure Apple just does not care about gaming. Though one would think you could use hardware accelerated ray tracing for more serious applications, like video rendering...Any indication from anywhere what the hold up was? I'd imagine that AMD and Intel not having hardware to support it would have left the aims of the extension fuzzy at the beginning, but they'd have known what was going into their silicon a long time ago. Was it an oversight? Or some tricky problem that needed solving?Apple have been such tools about this stuff.
Still, I'm glad it's finally here, and hopefully the delay hasn't lost Vulkan critical time with developer mindshare relative to DirectX 12.
Edit:
They've also confirmed that the overall functionality has been unchanged since the provisional release.
Ugh. So they just told everyone not to use it for 8 months for literally no reason. Great.
Edit 2:
So, reading through the notes it seems that the problem was trying to have both easy mapping from DXR to Vulkan and easy mapping of Vulkan to Metal. It turns out that they can't have both, and they've decided to ditch Metal. That makes sense for our use-case, but it sucks for Khronos, since MoltenVK was an explicit target for them. I can see why they wouldn't want to take that decision quickly.
See more from me