maxGpuFramesInFlight property
How many frames of GPU work may be outstanding before a screen view presents its previous image again instead of encoding a new frame.
The Vulkan and Metal backends encode and queue GPU work on the thread that calls render; when the GPU falls behind, queuing more work blocks that thread for the backlog (the queue is serialized with the raster thread's own submissions), so a GPU-bound scene stalls the UI thread and everything else on it. Pacing instead re-presents the last frame once maxGpuFramesInFlight frames are still running; the scene updates at the rate the GPU finishes frames, which it did anyway. Scene time still advances on a paced frame.
The default of 1 keeps the UI thread free and costs about a tenth of GPU throughput on a saturated GPU. 2 keeps the throughput but only halves the stall on drivers with shallow queues. Set to 0 to always encode. Only screen views pace; render-to-texture views always render.
Implementation
int maxGpuFramesInFlight = 1;