Skip to content

Shader Compilation Stutter: Why It Happens, How to Fix It

How to recognize PSO compilation hitches, confirm the diagnosis in five minutes, and fix them: pre-compilation, file verification, shader cache size, cache resets, and the DX11 fallback.

By the SavePoint editorial team How we check our guides 8 min read
A gaming PC setup at night with a glowing graphics card visible through the case side panel and a monitor showing a dark game scene

The pattern is unmistakable once you have felt it: the game runs at a smooth 90 fps, then freezes for a quarter to half a second the first time a specific enemy model, ability effect, or level area appears on screen. It recovers instantly, runs fine for a while, then hitches again somewhere new. Frame time graphs show isolated 100-300 ms spikes sitting on top of a normal 11 ms baseline. This is shader compilation stutter, and it is one of the most common - and most fixable - performance problems on PC.

This guide explains what the PC is actually doing during those hitches, then walks through the fixes in the order that usually works: in-game pre-compilation first, then file verification, driver-level options, and finally cache resets. Menu paths below reflect current versions of Windows 11, Steam, and the NVIDIA and AMD driver software; menus may shift slightly with version updates.

What is actually happening during the hitch

Every visual effect in a modern game - a brick wall, a flashlight beam, a smoke plume - is drawn by shaders: small programs that the GPU executes. GPUs cannot run the shader source shipped with the game directly; it must first be compiled into machine code for your specific GPU model and driver version. Consoles compile everything once, for one fixed hardware target, and ship the result on the disc. PCs have effectively infinite hardware combinations, so the compilation has to happen on your machine, either up front or at the moment the effect is first needed.

The hitch is that moment. Compiling a complex pipeline state object (PSO - the term DirectX 12 and Vulkan games use) can take tens to hundreds of milliseconds of CPU time, and while the CPU is doing it, it is not preparing frames. If the game defers this work until first use - walking around a corner, an enemy spawning, an ability firing for the first time - you get the hitch exactly when that content appears. The second time you see the same effect, the compiled shader is cached and the hitch is gone. That on/off pattern is the diagnostic signature: hitches that never repeat in the same spot are shader compilation; stutter that repeats in the same spot every time is something else entirely (usually a streaming, storage, or settings problem - see the links at the end).

Unreal Engine 4 and 5 titles, plus DirectX 12 ports of cross-platform games, are the classic offenders, because their rendering pipelines create many unique PSOs at runtime.

How to confirm the diagnosis in five minutes

Before changing anything, spend five minutes confirming that compilation is actually the failure. Enable the frame time overlay (Steam: Settings - In Game - Performance overlay; or the NVIDIA App / Adrenalin performance panels), then walk the same route twice:

  • First pass: hitches of 100-300 ms at new locations, new enemy types, and first casts of abilities.
  • Second pass, same route: the same spots are now smooth, but new spots hitch.

That asymmetric pattern - a shrinking set of hitch locations as you play - is compilation, essentially confirmed. By contrast, streaming stutter (assets loading in) tends to hitch every time you cross the same boundary no matter how many times you repeat it, and thermal or power throttling shows up as a gradual fps decline rather than single-frame spikes. Numbers to anchor on: a compilation hitch is one or a few frames lasting 10-30x longer than normal (an 11 ms frame at 90 fps becomes 100-300 ms), while asset streaming usually shows many consecutive 30-60 ms frames, and driver crashes show as a several-second freeze with a screen flash rather than a hitch at all.

Fix 1: let the in-game compilation finish - all of it

Most games that know they have this problem ship a pre-compilation pass: a "Compiling Shaders" screen or a background progress indicator on the main menu. Three rules make it actually work:

  1. Do not skip or alt-tab through it. Some games pause or slow compilation when the window loses focus; several titles from the early 2020s were infamous for compiling shaders only while the game is the active window. Leave it alone until the indicator finishes.
  2. Wait on the menu after the bar fills. Several games continue background compilation for another minute or two after the visible bar completes. A 60-90 second wait on a quiet main menu is cheap insurance.
  3. Repeat after driver changes. The compiled cache is tied to your GPU model and driver version. A driver update can invalidate part of it, so the first launch after an update may hitch again while the cache rebuilds.

This alone resolves the problem for a large share of players, because the most common cause is simply skipping the pass or alt-tabbing during it.

Fix 2: verify game files before touching anything else

A corrupted or partially updated game can recompile shaders every launch or compile them badly. On Steam: right-click the game in your Library, choose Properties, then Installed Files, then Verify integrity of game files. On the Epic Games Launcher: open your Library, click the three dots under the game tile, choose Manage, then Verify. Both take a few minutes and rule out an entire class of "stutter got worse after the patch" reports.

Fix 3: give the driver shader cache room (NVIDIA)

NVIDIA drivers maintain a disk cache of compiled shaders, and its default size is small enough to fill on modern games - when it fills, old entries get evicted and get recompiled, which turns one-time hitches into recurring ones.

  1. Open the NVIDIA Control Panel (right-click the desktop).
  2. Manage 3D Settings - Global Settings tab.
  3. Find Shader Cache Size and raise it to 10 GB or higher (the list goes up to 100 GB and Unlimited on current drivers).
  4. Apply, then restart the game.

On AMD, the equivalent lives in AMD Adrenalin under the gear icon - Graphics - Advanced, where Reset Shader Cache clears the cache (useful if it is corrupted; there is no size setting on current drivers, they manage it automatically).

Fix 4: clear the shader caches properly

If hitches got dramatically worse after a driver update or a game patch, the on-disk cache may be stale or corrupted. Clear it and let the game rebuild:

  • NVIDIA DirectX cache: %LOCALAPPDATA%NVIDIADXCache (and GLCache for OpenGL/Vulkan titles)
  • Windows D3D cache: %LOCALAPPDATA%D3DSCache
  • AMD: %LOCALAPPDATA%AMDDxCache and %LOCALAPPDATA%AMDGLCache

Paste those paths into the File Explorer address bar (Win+R also works), delete the folder contents, and relaunch the game. Expect worse stutter for the first 10-20 minutes while caches rebuild - that is normal and it settles. If a game offers its own "Clear Shader Cache" option in settings, use that instead; it clears only that game's entries.

Fix 5: try the other graphics API

Many PC ports ship with both DirectX 11 and DirectX 12 (or Vulkan) renderers. The DX11 path generally uses older, simpler pipeline techniques that compile on the fly with far less CPU cost, while DX12/Vulkan rely on explicit PSO compilation. If the game has a renderer option (or a launch option like -dx11 in Steam's launch properties), and your GPU is not being pushed to its limit, the DX11 path often eliminates PSO hitching entirely at a modest cost in maximum fps. For a 90 fps target on mid-range hardware, that trade is usually worth taking. This is the single most effective setting-level fix for Unreal Engine ports, which is why so many of them quietly recommend it in their own support pages.

Fix 6: overlays and background monitoring

Runtime overlays (Steam, Discord, GeForce Experience/NVIDIA App, MSI Afterburner with RivaTuner) inject into the rendering pipeline. Injection alone does not cause PSO compilation, but it can lengthen the critical section the game must block during it, and Afterburner-style frame-time capture has been implicated in specific games' stutter bugs. If hitches persist after the fixes above, disable every overlay for one test session and compare. It costs nothing and occasionally finds the culprit outright.

What not to bother with

Shader compilation stutter is CPU-side and disk-side. It is not a VRAM problem, and it is not fixed by more RAM (16 GB is not the cause of a 200 ms hitch), lower resolution (the GPU is idle during the hitch), or "optimizing" Windows services. Disabling core parking, changing power plans, and registry tweaks circulate in forum threads because they are generic; they do not touch the PSO compilation path. The one hardware note that matters: a slow SATA drive or nearly full SSD worsens streaming stutter, which is a different failure with a repeated-in-the-same-spot signature.

Order of operations that works: run the in-game compilation to completion without alt-tabbing - verify files - raise the NVIDIA shader cache to 10 GB (or reset AMD's) - clear the OS shader caches if hitches worsened after a driver update - try the DX11 renderer if the game offers one - disable overlays for one test run. Most cases die somewhere in the first three steps.

If the stutter that remains repeats in the same locations every time, it is not compilation - the walkthroughs on fixing game stuttering on Windows 11 and SSD versus HDD load behavior cover that failure mode. For game-specific tuning after the hitching is gone, see Cyberpunk 2077 PC settings and the Elden Ring stutter fix guide, both of which deal with titles that shipped with well-documented shader issues.

By the SavePoint editorial team · How we check our guides