Develop
Develop
Select your platform

Performing a Draw Call Trace

This topic describes how to perform a draw call trace, which collects low-level metrics pertaining to each individual draw call.
Note: Due to a bug in Qualcomm’s drivers, sometimes you will fail to capture Meta Quest specific counters with the error message “Failed to retrieve drawcall trace results. Received 0 metrics.” If this happens, close RenderDoc Meta Fork, close the app in-headset, and relaunch and try again. If you are still getting errors after 2-3 tries, it could be due to API errors you need to fix yourself.
To perform a draw call trace, load a capture and select Windows > Performance Counter Viewer.
Windows > Performance Counter View
Click the Capture counters button.
Capture counters button
Select the desired metrics by clicking on the check boxes, then click on the Sample counters button.
Performance counter selection
After replaying the scene on a Meta Quest headset, you’ll be presented with a table of draw call metrics in the Performance Counter Viewer. Each row represents a draw call, and you can double-click on a row to select the corresponding draw call in the Event Browser.
Performance Counter Viewer

Interpreting results

The results table in the Performance Counter Viewer displays one row per draw call and one column per selected metric. You can double-click any row to jump to that draw call in the Event Browser and inspect the associated pipeline state, textures, and shaders.

Finding expensive draw calls

Sort the table by the Clocks column (descending) to surface the most expensive draw calls first. You can also sort by % Shaders Busy to identify draws that consume the largest share of GPU shader resources. These high-cost draws are the best candidates for optimization.

Identifying bottlenecks

The per-draw metrics can help pinpoint what is limiting GPU performance for a given draw call:
  • High % Texture Fetch Stall — The draw is texture-bound. Consider reducing texture resolution, using more aggressive mip levels, or switching to a lighter compression format such as ASTC.
  • High % Vertex Fetch Stall — The draw is vertex-bound. Look for overly dense meshes or inefficient vertex formats that can be simplified.
  • High Clocks — The draw is generally expensive. Review the associated fragment and vertex shaders for complexity, and check whether the draw can be batched or culled.
For full descriptions of every available metric, see Draw Call Metrics.

See Also