Why High Average FPS Can Hide Severe Frame-Time Spikes
Average FPS is one of the most misleading numbers in PC gaming because it collapses thousands of individual frame times into a single value. A game can average 120 FPS over a 30-second capture while still containing dozens of frames that took 40 ms, 80 ms, or even 150 ms to render. Those slow frames appear as stutter, hitching, or a sudden rubber-band sensation, even though the average remains high. Smoothness is not determined by the average; it is determined by consistency. At 60 FPS, every frame should arrive roughly every 16.7 ms. At 120 FPS, the target is about 8.3 ms. If most frames arrive at 7 ms but a few spike to 50 ms, the display receives a burst of smooth motion followed by a visible pause. The human eye is especially sensitive to those outliers because motion prediction breaks down when a frame is late.
This is why percentile metrics matter far more than the headline FPS counter. The 1% low and 0.1% low frame rates describe the slowest frames in a session. A game with 140 FPS average but a 0.1% low of 18 FPS will feel dramatically worse than a game locked at 70 FPS with a 0.1% low of 60 FPS. Variable refresh rate displays help by adapting refresh timing to each frame, but they cannot fully mask massive frame-time spikes. VRR can smooth small jitters; it cannot make a 100 ms CPU stall disappear. Overlays, benchmarks, and review graphs often emphasize average FPS because it is easy to market, but players experience frame pacing, not averages. The first step in understanding the stutter epidemic is accepting that a high average FPS can coexist with terrible frame-time consistency.
The Usual Suspects: Shader Compilation, CPU Bottlenecks, and Traversal Stutter
When players report stuttering despite high average FPS, the causes usually fall into a few recurring categories. Shader compilation stutter is one of the most notorious. Modern APIs such as DirectX 12 and Vulkan give developers more control but also push more responsibility onto the runtime. If a game has not precompiled a shader before it is needed, the CPU may stall while the driver compiles it on the spot. The result is a hitch the first time a spell, weapon effect, enemy, or environment material appears. Unreal Engine titles have been heavily associated with this problem, but they are not alone. Precompilation screens can help, yet some games still compile shaders during gameplay, especially after driver updates or when shader caches are cleared.
CPU bottlenecks are another major source. A system may have a powerful GPU and still stutter because the main thread cannot prepare draw calls, physics, AI, or world streaming fast enough. In those moments, GPU utilization drops, frame time spikes, and the game feels briefly unresponsive. This is common in open-world cities, large battles, or games with heavy simulation. Traversal stutter is closely related: as the player moves through a level, the engine streams assets, decompresses textures, and loads new areas. If that work is not hidden behind loading screens or asynchronous systems, the pipeline stalls. VRAM overflow can produce similar symptoms, forcing the game to shuffle data between system RAM and GPU memory. Background tasks, driver overhead, Windows scheduling, overlays, and even storage speed can add further hitches. The key point is that these problems are often invisible in average FPS counters because they last only a few milliseconds or a few frames.

How to Diagnose Stutter with Frame-Time Graphs and Percentile Metrics
diagnosing stutter requires better data than an FPS counter. Tools such as CapFrameX, PresentMon, MSI Afterburner with RivaTuner Statistics Server, NVIDIA FrameView, and AMD’s performance metrics can record frame times and present them as a graph. The goal is to capture a representative play session, usually five to ten minutes, and then inspect the shape of the graph rather than the average. A healthy frame-time graph looks like a relatively flat line with small fluctuations. A stuttery graph shows repeated spikes, periodic cliffs, or sudden outliers that correspond to visible hitches. The 1% low and 0.1% low values are useful summaries, but the graph itself reveals patterns. Are spikes happening only when entering a new area? Only when using a specific ability? Only after alt-tabbing? Only when the GPU is near 99% utilization? These clues narrow down the cause.
Players should also monitor GPU utilization, CPU per-core usage, VRAM usage, system RAM, and storage activity. If GPU utilization drops sharply during a hitch, the CPU or streaming system may be the bottleneck. If VRAM is maxed out, the game may be thrashing. If a single CPU thread is pegged at 100%, the game may be main-thread limited. LatencyMon and HWiNFO64 can help detect driver-related DPC latency, thermal throttling, or power-limit issues. It is also important to test with overlays disabled, because Discord, Steam, GeForce Experience, RGB software, and capture tools can introduce their own overhead. A clean baseline test, followed by one change at a time, is the only reliable way to separate game engine problems from system configuration problems. Without frame-time data, players are left guessing; with it, they can identify whether the stutter is shader compilation, traversal streaming, CPU limitation, or something else entirely.
Practical Fixes That Address Frame Pacing, Not Just Peak FPS
The most effective fixes target frame pacing instead of chasing a higher average. A frame rate cap set slightly below the maximum achievable FPS can reduce GPU load and create more consistent frame times. For example, capping at 117 FPS on a 120 Hz VRR display often feels smoother than letting the GPU run at 100% and spike. In-game limiters are preferable when well implemented, but RivaTuner Statistics Server can provide a more consistent cap. VRR, G-Sync, and FreeSync should be enabled correctly, with Vsync often set to “On” in the driver and “Off” in-game when using a frame cap. Low Latency Mode or Reflex can help in supported titles, but they are not universal stutter cures.
Shader-related stutter requires patience and preparation. Players should let precompilation screens finish, avoid skipping them, and be cautious about clearing shader caches or reinstalling drivers before a play session. Updating GPU drivers, chipset drivers, and motherboard BIOS can resolve compatibility issues, while enabling XMP or EXPO for RAM and Resizable BAR can improve CPU-GPU communication. Windows power plans should be set to High Performance or Ultimate Performance, and background apps should be closed. Increasing the shader cache size in the GPU driver, ensuring an adequate page file, and keeping enough free space on the game drive can also reduce hitching. Hardware-accelerated GPU scheduling is worth testing on and off, because results vary by system. Ultimately, some stutter is the developer’s responsibility: games need to precompile shaders, stream assets asynchronously, cache pipeline states, and avoid main-thread bottlenecks. Until then, players can only reduce the symptoms, not always eliminate the root cause.


