Use RenderDoc Meta Fork for GPU Profiling
Updated: Nov 27, 2024
RenderDoc is a graphics debugging tool that supports multiple graphics APIs and development platforms. It is used for frame capture and analysis during development. RenderDoc shows how a running application’s engine determined a scene should be rendered on Meta Quest hardware for a single frame. This information can often be used to find optimization opportunities and potential sources of performance issues.
Meta now maintains its own fork of RenderDoc. This fork provides access to low-level GPU profiling data from Meta Quest’s Snapdragon 835, Meta Quest 2’s Snapdragon XR2, and Meta Quest Pro’s Snapdragon XR2+ chips, specifically information from its tile renderer.
To install RenderDoc Meta Fork, the installer for Windows and Mac is available on our
Downloads page.
UNINSTALL PREVIOUS VERSION
Developers using a version of RenderDoc for Oculus must manually uninstall before installing RenderDoc Meta Fork.RenderDoc Meta Fork can perform a tile-level render stage trace for a single frame of an app on a connected Meta Quest. After completing a successful trace, the results can be viewed in the new Tile Timeline view, which can be found at Window > Tile Timeline. This timeline shows each surface rendered sequentially during the frame, as well as the render stages for each tile on a given surface, with accurate timing information.
RenderDoc Meta Fork can also perform a draw call trace that collects up to 45 low-level metrics pertaining to each individual draw call in the capture. To get started, go to
Window >
Performance Counter View. For a list of these metrics, see
Draw Call Metrics.
RenderDoc Meta Fork offers access to Meta Quest shader stats through the Vulkan extension
KHR_pipeline_executable_properties
. For more information on retrieving shader stats and interpreting them, see
Accessing Vulkan Shader Stats.
RenderDoc Meta Fork can validate Vulkan apps for issues when loading a capture.
RenderDoc Meta Fork supports both OpenGL and Vulkan apps, except in the case of Vulkan shader stats and API validation. Note that apps used with this tool must be development builds.
A capture is necessary to perform render stage traces, draw call traces, and to retrieve Vulkan shader stats. Read
Taking and Loading a Trace before going through other sections of the documentation.
Taking and Loading a Capture Before you can start analyzing your app with RenderDoc Meta Fork, you need a frame capture from an app with RenderDoc Meta Fork, you need a frame capture from an area of your app where you’re notice performance or graphical issues that you’d like to investigate. get started by reading
Taking and Loading a Trace before going through the other sections of this guide.
Render Stage Trace and the Tile Timeline The Tile Timeline is a new UI element that presents the results of a render stage trace. Due to the Meta Quest GPU’s tiled architecture, rendering of a surface is divided into bins and then executed in stages. Using the Tile Timeline view, developers can identify hidden states such as the rendering mode of a surface or the number of bins executed.
The Performance Counter Viewer is a new UI element that presents the results of a draw call trace. It displays user-selected metrics pertaining to each draw call. See
Draw Call Metrics for information on available metrics.
Vulkan shader stats are accessed by loading a capture and selecting an individual draw call. To retrieve shader stats, select a valid value from the
Pipeline State panel, and then click
View. For more information, see
Accessing Vulkan Shader Stats. The
Pipeline State panel can be opened from the menu, under
Window.
Vulkan validation errors can negatively affect app performance. RenderDoc Meta Fork can enumerate these errors when opening a Vulkan capture. Enable API validation on replay when opening your capture to see any errors. See
Taking and Loading a Capture for more information.
See the following topics that detail the use of RenderDoc Meta Fork:
See the following guides for information on using RenderDoc Meta Fork to optimize your apps: