perf_diagnose
Diagnoses GPU encoder fragmentation in saved recordings, reporting short-encoder share, encoders and command buffers per frame, GPU idle time, and translation-layer patterns to reveal overhead.
Instructions
Says whether a saved recording splits its GPU work into too many short encoders, the pattern of translation layers such as DXMT, Mullion or MoltenVK, with the numbers behind it: encoders and command buffers per frame, the share of short encoders, the labels with the most GPU time and the GPU's idle time. Read the idle time together with the FPS: a program waiting for vsync idles too. Defaults come from bgfx 17-drawstress on an M1 Pro: 7 encoders per frame and 50% under 25 us under Mullion, 2 and 2% in native Metal.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| run | Yes | a run name from perf_runs | |
| short_us | No | an encoder under this GPU time counts as short: 10, 25 (default), 50, 100, 250, 500 or 1000 | |
| short_share | No | share of short encoders from which the verdict is yes, default 0.25 | |
| min_encoders | No | encoders per frame (median) from which the verdict can be yes, default 4 |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||