The Arithmetic Illusion of Average FPS
The human visual cortex perceives motion smoothness not by total frames counted over a second, but by temporal consistencyβthe interval between consecutive frames:
| Metric | What It Measures | Why It Dictates Fluidity |
|---|---|---|
| Average FPS | Total frames divided by 1.0 second. | Masks individual 50ms stutter spikes within smooth frame clusters. |
| 1% Low FPS | The average framerate of the worst 1% slowest frames. | Reflects the actual perceived hitching floor during intense gaming. |
| 0.1% Low FPS | The average framerate of the single worst 0.1% frames. | Identifies catastrophic hitches, asset streaming freezes, and shader compilation. |
| Frametime Jitter ($\sigma$) | Standard deviation of frame intervals from target interval. | Quantifies frame delivery consistency in milliseconds. |
Primary Root Causes of Micro-Stutter
- Shader Compilation: When modern DX12/Vulkan games compile pipelines on-the-fly instead of during pre-caching, the CPU thread stalls for 20β80ms, generating a prominent frametime spike.
- VRAM Paging: When game texture budgets exceed dedicated GPU memory (VRAM), textures must be paged over the PCIe bus from system RAM, causing severe frametime drops.
- Background Windows DPC Latency: Rogue device drivers or antivirus scanners interrupting the CPU core handling game message queues.
How to Stabilize Frametimes
- Cap Framerate 3 FPS Below Refresh Rate: When using G-Sync/FreeSync on a 144Hz monitor, cap in-game framerate at 141 FPS to prevent frame buffers from colliding with the V-Sync ceiling.
- Enable Reflex / Anti-Lag: Low latency modes synchronize CPU render submissions directly with the GPU queue, eliminating buffer bloat.
- Benchmark Regularly: Run our Frametime Stutter Test and Universal FPS Benchmark to detect browser hardware acceleration issues.