First Rays
Given that the new RDNA2 GPUs provide some support for hardware accelerated raytracing and there is even a new shiny Vulkan extension for it, it may not be a surprise that we’re working on implementing raytracing support in RADV.
Already some time ago I wrote documentation for the hardware raytracing support. As these GPUs contain quite minimal hardware to implement things there is a large software and shader side to implementing this.
And that is what I’ve been up to for the last couple of weeks. And I now have achieved my first personal milestones for the implementation:
- A fully recursive Fibonacci shader
- And a raytraced cube:
This involves writing initial versions for a lot of the software infrastructure needed, so really shows that the basis is getting there.
At the same time we’re quite a ways off from really testing using CTS or running our first real demos. In particular we are missing things like
- GPU-side BVH building
- any-hit and intersection shaders
- Supporting BVH instances, geometry transforms etc.
- pipeline libraries
and much more, in addition to some of these initial implementations likely not really being performant.