Skip to content

radv: Add support for Radeon Raytracing Analyzer

Friedrich Vock requested to merge pixelcluster/mesa:rra_trace into main

This MR adds the capability to capture Radeon Raytracing Analyzer (RRA) traces.

The tracing layer hooks into vkCmdBuildAccelerationStructures to convert the acceleration structure to RRAs format using a meta shader right after it is built. This ensures that a capture can validly include acceleration structures which were already destroyed by the host.

This adds a small overhead when RRA tracing is enabled (around 5% with Quake 2 RTX on my 6700XT on lowest settings with a small window, 190FPS -> 180FPS). Saving the captured acceleration structures to file didn't produce any significant dent in the frame times.

All info about the RRA file format and its data structures was reverse-engineered from the RRA binary, so there's a lot of "unused" or "reserved" floating around. RRA's README notes it as being "licensed under MIT", so I hope the source code will eventually be released so that these can be cleaned up.

Edited by Friedrich Vock

Merge request reports