Well AMD have created their own acceleration structure (BVH) for RT for the PC cards and with so many different PC configurations out there, they blocked access to anything BVH-related and only allowed devs to have control over ray intersection tests.
Sony might already be using AMD’s acceleration structure at launch at least, but in that tech PDF that was shared on this thread, they talked about how they’re researching/working on advanced acceleration structures for “faster” RT WITH input from developers also being considered throughout the entire process. And since they’re using their own API and are allowing low-level access, they’re giving devs a bit more fine-grained control over the RT process. Btw, none of the current-gen consoles and RDNA 2 PC cards have HW-accelerated BVH traversal, so I’m guessing these happen on the shaders (SPs in a CU) themselves through asynchronous compute.
Correction:
AMD hasn’t created any acceleration structures for RT on the PC. The philosophy behind their RT hardware implementation aims to provide more flexibility at the cost of performance than NVidia. Nvidia’s hardware solution is rigidly designed around BVH trees, using dedicated hardware to accelerate ray intersection tests and BVH traversal. On the other hand, AMD provides dedicated hardware to accelerate ray/box and ray/tri intersection tests and that’s it, which is actually more interesting for exploring opportunities to use alternative acceleration structures and/or traversal schemes.
RT in real-time rendering is still in its infancy. So just because NVidia chose to focus on BVH trees and their specific method for BVH traversal in hardware, doesn’t mean it’s the most optimum, efficient or best method. With more time, exploration and research, better more performant approaches may emerge which for AMD’s RT hardware approach offers the opportunity for practical application in a way NVidia’s doesn’t.
Going even further, RT on PC is dominated by DirectX with DirectRT, which is a black box for devs, closing off exposure to the low level hardware features that devs would want to use to explore alternative approaches to writing RT algorithms. This is even worse for AMD, whose entire philosophy behind their hardware implementation is designed around being able to offer devs the opportunity to explore new approaches in software. This is a key issue on PC and by extension Xbox.
For PS5, they will have their own API for RT exposing all the hardware features, meaning devs might choose to explore the use of k-d trees for examples, in place of BVH trees for the acceleration structure. Sony’s engineers have patents already in this area and it wouldn’t surprise me to see PS5 devs exploring these alternate approaches to great effect. It wouldn’t surprise me if this was what Insomniac are using for Spiderman’s RT implementation, as though k-d trees take more computation to build, higher scene complexity with more object occlusion will far more greatly favour k-d trees versus BVHs, and the increased build cost will be mitigated somewhat by the fact that RT is only used in a limited sense (I.e. for reflections etc).
Thanks for your explanation.
On more question though, the ISA needing a BVH4 tree means you can't really create the BVH tree like you want, doesn't it? Meaning that you are not able to create a BVH tree with 8 childs per node per example
Not necessarily. Certain functions within the ISA reference a BVH4. So a BVH with 4 child nodes per node is the maximum number of child nodes per node allowed for that specific function.
A BVH4 will grant the most efficient utilisation of the hardware, as the intersection hardware is designed to do 4 ray/box or tri intersection tests per clock cycle. You can use a BVH2 or 3, but you’ll see perhaps less efficiency in performance.
On the other hand, given the general nature of the ISA, other acceleration structures entirely can be used. It’s just that the dev will have to be careful to ensure the selected structure maps to the hardware limitations in order to maximise performance.
These are things devs will likely only be able to explore on PS5 as now, until MS exposes the RDNA 2 RT ISA instruction in HLSL, so that devs can start to write their own custom shaders for it.