Microstuttering and Frame Pacing: How to Diagnose and Fix It
Average frame rate does not tell you whether motion feels smooth. A game delivering 80 FPS with frames spaced unevenly in time feels worse than 60 FPS with perfectly consistent delivery. Frame pacing is the metric that captures this difference.
Microstuttering refers to irregular intervals between displayed frames, even when the average frame rate appears acceptable. A frame that takes 25 ms to render followed immediately by one that takes 7 ms creates a visible lurch, despite both contributing equally to an average of around 50 FPS. The human eye detects this unevenness as stutter rather than smoothness.
The problem is measurable. Frame time data, expressed in milliseconds per frame rather than frames per second, reveals whether delivery is regular. Understanding what causes the irregularity determines which fix applies.
FAQ: Common Questions About Microstutter
Why does my GPU show 80 FPS but the game still stutters?
Average FPS is calculated by dividing total frames by total elapsed time. A burst of fast frames followed by a single slow frame produces a high average with a visible hitch. The slow frame—often called a frame time spike—is the stutter. Tools that only display FPS cannot show you this. You need per-frame time data.
What causes frame time spikes?
The four most common sources are CPU thread bottlenecking on a single frame, shader compilation stutter (common in DirectX 12 and Vulkan titles on first-pass encounters), VRAM overflow causing data streaming across the PCIe link, and driver-level synchronization delays when V-Sync is active without adaptive sync hardware. Background Windows processes can also inject unpredictable spikes of 2–8 ms during garbage collection or security scan passes.
Does multi-GPU cause frame pacing problems?
Legacy SLI and CrossFire configurations had severe frame pacing issues where one GPU alternated frames with the other. When both GPUs did not finish their respective frames at the same time, the display received frames in irregular bursts. Modern multi-GPU APIs (DirectX 12 multi-adapter, Vulkan mGPU) handle synchronization more explicitly but are rarely implemented by game developers, making multi-GPU largely impractical today.
How to Measure Frame Pacing
Two tools give reliable frame time data: NVIDIA FrameView and RivaTuner Statistics Server (RTSS). Both log per-frame timestamps and calculate the frame time in milliseconds. CapFrameX can import these logs and plot frame time over time, making spikes immediately visible as tall bars above a flat baseline.
When reviewing data, look for 1% low and 0.1% low frame times rather than averages. A 1% low of 18 ms on a 60 FPS target is fine. A 1% low of 40 ms means at least one in a hundred frames takes twice as long as the average, which is perceptible as a hitch.
Frame Pacing: What the Numbers Mean
| Frame Time (ms) | Equivalent FPS | Perceptibility | Common Cause |
|---|---|---|---|
| 16.7 ms | 60 FPS | Smooth if consistent | Normal render budget |
| 20–25 ms occasional spike | — | Marginal, often unnoticed | Shader compilation, background process |
| 33–50 ms spike in 60 FPS stream | — | Clearly visible hitch | VRAM overflow, CPU stall |
| 100+ ms isolated spike | — | Hard freeze/lurch | Driver timeout, OS interrupt, shader compile |
| Alternating 8 ms / 25 ms pattern | — | Distinctive judder | V-Sync without VRR, legacy multi-GPU |
Fixes Ranked by Impact
- Enable adaptive sync (G-Sync or FreeSync). This eliminates the alternating frame delivery pattern caused by fixed-rate V-Sync. The monitor waits for the GPU rather than scanning at a rigid interval, which removes the largest single source of perceived stutter in GPU-limited scenarios.
- Enable shader pre-compilation in supported games. Many DirectX 12 and Vulkan titles offer a shader compilation pass on first launch. Allowing this to complete before playing eliminates mid-game compile hitches that can reach 100 ms or more on first encounter.
- Reduce texture quality to stay within VRAM budget. When the GPU runs out of VRAM, the driver streams textures across the PCIe bus, which takes 10 to 100 times longer than accessing local GDDR. This produces severe, irregular spikes that look like the game briefly freezing. Monitoring VRAM usage via HWiNFO64 identifies whether this is the cause.
- Set process priority and disable background services during gaming. Windows Update, antivirus scans, and cloud sync services can interrupt the GPU driver context and inject 5–20 ms spikes. Scheduling scans outside gaming hours removes an unpredictable variable.
- Disable V-Sync if you have adaptive sync. Running both simultaneously often reintroduces fixed-rate synchronization through the V-Sync fallback path. Use only the adaptive sync setting in the driver or game.
Shader compilation stutter specifically requires either waiting for the game to pre-compile on first install or playing through new areas once to prime the pipeline state object cache. There is no in-game setting that eliminates first-time shader compile stutter on DX12 and Vulkan titles—only pre-compilation and cache warmup help.