With XDC 2020 (X.Org Developers Conference) in full swing, we've been going over the various presentations to gather some interesting bits for you. Here's more on the ACO shader compiler and Vulkan Ray Tracing.
More talks were done across yesterday, with the first one we're mentioning here being from Timur Kristóf who is currently a contractor for Valve who talked about ACO (the newer Mesa shader compiler for AMD graphics). The idea behind ACO which Valve announced back in 2019, for those not aware, is to give a smoother Linux gaming experience with less (or no) stuttering with Vulkan with faster compile times for shaders. Kristóf goes over lots of intricate details from being in the experimental stages to eventually the default in Mesa with it now having support across 5 different generations of AMD GPUs.
Some future plans they have for ACO:
- OpenGL support which is a long road but it's coming.
- RDNA 2 support, AMDs upcoming next-generation GPUs which is already in progress.
- Ray Tracing was mentioned too but like the above, they have no documentation access yet.
- Mesh Shaders they're also interested in supporting but no extensions available yet
- More optimizations
You can see the the ACO presentation at 28:57, our embed should start there:
The next talk we're highlighting directly here is from Jason Ekstrand who works for Intel, to talk about Ray Tracing in Vulkan. As a reminder, they gave a bit of a timeline:
- March 19, 2018 - Microsoft announced DirectX Ray-tracing (DXR).
- September 19, 2018 - Vulkan 1.1.85 included the VK_NVX_ray_tracing extension for use on NVIDIA RTX GPUs. NVIDIA also then released the 410.57 driver for Linux with Ray Tracing. Since we still see a lot of people think Ray Tracing isn't available on Linux, hopefully this will be a good reminder.
- March 17, 2020 - Khronos released the provisional cross-vendor Ray Tracing extensions. No vendor officially ships them in their stable drivers yet, as they're not finished and there might still be changes.
- Final release of the cross-vendor Ray Tracing extensions are still in progress. Ekstrand said it's expected "sometime soon" with exact dates to be confirmed but it's well on the way.
From there they go on to give an overview on what Ray Tracing actually is, along with advantages and disadvantages of using it and then onto details of actually using Ray Tracing with the Vulkan API. According to Ekstrand, the Ray Tracing API is basically "a whole new 3D rendering API, there's very little overlap with the old rendering, it acts a new pipeline bind point and is basically a completely separate thing like compute".
You can see Ekstrand's talk on Ray Tracing in Vulkan below starting at 4:43:44. Our embed should start about there.
Hopefully we will see Khronos release Ray Tracing into Vulkan fully by the end of the year. That would be a nice boost for open graphics. Really great to learn more about what goes on behind the scenes.