RADV raytracing : implementation plan
Plan is that small, prioritizing correctness and then building up in features & performance.
-
Milestone 0: Simple rays tested using a self-written vulkan test - This ensures we have the basic API bits together, should be enough to pass a first CTS test
-
Demo -
Deferred operations (mesa/mesa!8545 (merged)) -
CPU BVH build (https://gitlab.freedesktop.org/bnieuwenhuizen/mesa/-/tree/rt-accel-struct) -
Compilation of ray pipelines - Feedback: can use callables too to avoid BVH dependence
-
Running ray pipelines
-
Milestone 1: Quake RTX - This will give our first benchmark
- Another demo may be substituted iff Quake RTX has some unforeseen difficulty
-
GPU BVH build -
Debugging
-
Milestone 2A: Better BVH build - Don't do dumbest algorithm possible. Use something like SAH or LBVH?
-
Use Embree on the CPU side -
Prepare for Jason's CL BVH building or roll something else
-
Milestone 2B: Pipeline libraries - This is where proper ACO/NIR callables come into play
-
Milestone 2C: Optimize traversal -
Implement some good state sorting -
Efficient ray traversal itself
-
-
Milestone 2D: Feature backfill -
Full BVH options -
BVH serialization -
Traversal bits (opaque vs non-opaque, ray mask etc.)
-
-
Milestone 3A: vkd3d-proton bringup - At this stage we should be able to run stuff
-
Milestone 3B: inline raytracing
Edited by Bas Nieuwenhuizen