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.
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.
Last edited by CatKiller on 23 November 2020 at 2:44 pm UTC
Good good, this means that's 1 less reason for devs to use DX12 and DXR. Convincing them Vulkan is the better option will probably be the hardest part.Xbox ? (Does it have vulkan at all?)
Last edited by axredneck on 23 November 2020 at 2:27 pm UTC
Good good, this means that's 1 less reason for devs to use DX12 and DXR. Convincing them Vulkan is the better option will probably be the hardest part.Xbox ? (Does it have vulkan at all?)
Troll mode on:
Xbox does not have users, so whatever api they have or not...
More serious:
It is a windows 10 it seems, and there is doom eternal on it, so I'd say yes.
Ugh. So they just told everyone not to use it for 8 months for literally no reason. Great.No, they sought feedback from lots of industry vendors across the board. As part of that, as noted, it was split up into multiple extensions so people could use part or all of it. Plus numerous other smaller changes asked by others.
I was reading through the notes as you were writing this, and already edited my comment.Ugh. So they just told everyone not to use it for 8 months for literally no reason. Great.No, they sought feedback from lots of industry vendors across the board. As part of that, as noted, it was split up into multiple extensions so people could use part or all of it. Plus numerous other smaller changes asked by others.
Ugh. So they just told everyone not to use it for 8 months for literally no reason. Great.They did because it could have changed during these 8 months. If anyone decided to use it in production then there would be more problems and frustration to solve for literally no reason because it wasn't standardized yet. And it was available before as vendor-specific extensions which are kind of "early access" as I understand it. Because in game engine you'd prefer a single code path instead of several vendor-specific ones, each with unique quirks as usual. That's what Khronos did, they unified all those and now it's guaranteed to be stable and ready to use (as soon as drivers are ready).
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.
Was anything achieved in getting the DXR to Vulkan RT mapping to be easier or didn't the notes elaborate on that?
More depots activity detected today, by the way.
Was anything achieved in getting the DXR to Vulkan RT mapping to be easier or didn't the notes elaborate on that?They certainly seem to think so. They have a chart (Figure 5 in their notes) comparing the two, and they say
It is straightforward to port code between the two APIs including re-use of ray tracing shaders written in HLSL
Was anything achieved in getting the DXR to Vulkan RT mapping to be easier or didn't the notes elaborate on that?They certainly seem to think so. They have a chart (Figure 5 in their notes) comparing the two, and they sayIt is straightforward to port code between the two APIs including re-use of ray tracing shaders written in HLSL
Thanks. I hope that this is true for translation layers as well as the code itself. As I understand it, the RT work for vkd3d was never continued because of problematic differences between the two.
Thanks. I hope that this is true for translation layers as well as the code itself. As I understand it, the RT work for vkd3d was never continued because of problematic differences between the two.
It was for vkd3d that they did those changes, really.
The change in the final Vulkan Ray Tracing functionality that will have the most impact on applications is the creation and layout of acceleration structures.
We received feedback from authors of API translation layers (such as vkd3d-proton) that it would be impractical to layer DXR on top of the provisional API Vulkan Ray Tracing acceleration structure. This resulted in changes to a sized acceleration structure creation and using allocation of acceleration structure storage on a VkBuffer instead of dedicated acceleration structure object storage.
So, yeah, hopefully Nvidia's non-beta driver and Mesa's AMD and Intel bits will expose support for the finalised extension in short order, and vkd3d will start using it.
https://developer.nvidia.com/vulkan-driver
November 23rd, 2020 - Windows 457.44, Linux 455.46.02
New:
The official release of Khronos Vulkan Ray Tracing!
So, yeah, hopefully Nvidia's non-beta driver and Mesa's AMD and Intel bits will expose support for the finalised extension in short order, and vkd3d will start using it.
Very nice! Thanks for reading and summarising while I had to be productive at work.
I'm not very into this... But, does it mean We will get a better performance in games we already play on proton? Any example?
No. There is no RT in proton yet.
I'm not very into this... But, does it mean We will get a better performance in games we already play on proton? Any example?
What this means is that Vulkan games that do ray tracing (of which there are currently two) can be run on AMD or Intel hardware as well as on Nvidia hardware; Nvidia have had hardware that can accelerate ray tracing for a couple of years, AMD have just released their own (and the consoles), and Intel are due to release theirs next year. The number of games that use Vulkan, and the number of games that use ray tracing, are both likely to go up over time, particularly as hardware to do it becomes more widespread.
It also means that games that use DirectX for ray tracing (which will work on Windows on AMD and Intel hardware, as well as on Nvidia hardware) now have something to be translated to so that they'll able to be made to run on Linux (through Proton). There are more than two of those. It was difficult to do before, and would have only worked for hardware from one company.
Last edited by CatKiller on 23 November 2020 at 11:08 pm UTC
See more from me