Why games stutter on Windows 11 (and how to find the real cause)

Stutter is a frame that arrived late, not a low frame rate — the causes that leave a trace, how to tell which one is yours, and what to do about each.

Your counter says 160. The game jolts anyway — a fraction of a second where the picture stops, your aim lands somewhere you did not put it, and then everything is fine again. The counter never moved, which is why nothing you do to raise it helps.

That gap is the whole subject of this page. Stutter is a frame that arrived late, not a low frame rate. A frame counter averages over a second, so one frame that took 90 ms disappears inside the 159 short ones next to it. The number that describes what you felt is the frame time, and a stutter is a frame much slower than its neighbours.

First, the honest sentence. Two of the ten causes below map to a single box in w0a: the scheduler value in cause 8 and the background game recorder in cause 9. Both boxes only put a setting where it belongs, and on a machine nobody has tuned, the first one finds nothing to change. Whether the stutter you feel was one of them is something only a capture before and after can tell you.

First, work out which of three problems you have

They get called the same word and have almost nothing in common.

Get a record before you change anything

Guessing is what makes this take weeks. A capture of the game you actually play, where it actually stutters, turns "what could it be" into "what happened at that spike" — and it is the "before" every later change is judged against. Reading the benchmark covers how.

The causes, one by one

1. A driver holding a processor core

While a driver is inside an interrupt or a deferred procedure call, that core runs above every thread priority there is: it draws nothing and reads no input until the driver lets go. It is easy to miss: it appears in no frame-time graph and in no task manager.

How you tell: measure it. The kernel section of reading the latency test lists every driver that held a core, by longest hold, with the file name. Past about 1 ms a driver is displacing input reports; at 4 ms and up the machine cannot hold a steady frame time whatever else you change.

What you do: update that one driver from the hardware maker — not the whole system, the named file. Network, storage and audio drivers are among the drivers that can do this.

2. Shaders compiling

New effect, new area, new weapon, and the game has to compile a shader before it can draw it. The compile happens on the CPU while the frame waits.

How you tell: it is worst in the first minutes of a session or a map, it fades as you play, and it returns after a driver or game update. If your stutter does not fade, this is not it — shader compilation stutter is the long version.

What you do: play through it, and do not benchmark inside that window; you would be measuring the compiler.

3. The disk the game streams from

A game pulling assets in as you move stutters when the read is slow, and the frame waiting on that data is the late one.

How you tell: hitches line up with entering a new area, and long frame intervals fall in the same window as disk activity. Check the obvious things: is the game on a mechanical disk, is the drive nearly full, is the game folder inside a cloud-synced folder that uploads every write, is the page file on a spinning disk. An SSD for a streaming game is not a tweak, it is the answer.

4. Memory pressure

When RAM fills, Windows moves pages out to disk and the pages coming back are felt as hitches. The less obvious case is the commit limit: as the total memory Windows can hand out runs low, the memory manager trims pages away from programs that are still running, and the game feels those trims as sub-second freezes. Both improve the moment you close a browser with forty tabs.

5. Something else running

Windows Update's worker, a maintenance task, a scheduled malware scan, a video export you forgot about. That work does not stop when a game starts; it queues for the same core as the render thread, so it shows up as frame-time spikes rather than a lower average. Waiting it out is a legitimate fix.

How you tell: a benchmark capture keeps its longest frame intervals with the disk work and hard faults that fell into the same window. When those were Windows maintenance or antivirus processes, the long-interval card counts the intervals and names the processes. That is what fell together, not proof that the work made the frame late: the antivirus reads whatever any program opens.

6. Heat and power limits

When a chip hits its temperature or power ceiling the clock is pulled down and pushed back up repeatedly, and wavy frame times are what that feels like from the inside. Firmware makes this call itself, without asking Windows. It starts after a while rather than immediately, and it tracks how warm the room is.

7. The display

A monitor running below the refresh rate it supports puts a floor under your frame pacing that the hardware does not require. Check the actual rate rather than assuming; it is wrong on a surprising number of machines after a fresh install or a cable swap.

8. A scheduler value left behind by an older tool

Win32PrioritySeparation decides how long a thread keeps the processor and how much more time the foreground application gets. Values with long or fixed quantums, or a foreground share below 3:1, change how the processor is shared between the game and everything else; what that does to frame times has not been measured. The Fix page's Memory and system defaults card puts the Windows default back.

9. Overlays and the capture layer

Overlays draw inside the game's own frame, and a background recorder encodes every frame so the last few minutes can be saved. Close them one at a time and test, rather than all at once.

10. The match, not the machine

An online game can hitch for everyone on the server at once. If single-player content on the same machine is clean and the frame-time record shows the game presenting normally, that is a genuinely useful answer: it is not your PC.

The two causes w0a has a box for

Cause 8: "Keep foreground priority at the right value (Win32PrioritySeparation)" (Optimizations page)

One DWORD value: Win32PrioritySeparation under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl.

Microsoft's reference for it is an archived page written for Windows 2000; it describes six bits read in three pairs, written AABBCC:

PairDecidesValues
AA (highest two bits)How long a thread may run each time01 longer, 10 shorter, 00 or 11 the edition's own default (shorter on a workstation edition)
BB (middle two)Whether that length varies01 variable, 10 fixed, 00 or 11 the edition's default (variable on a workstation edition)
CC (lowest two)How much more time the foreground program gets00 equal (and fixed), 01 2:1, 10 or 11 3:1. Used only when the middle pair means variable.

Cause 9: "Disable Xbox Game DVR" (Optimizations page)

ValueThe box writesWindows default (what the repair card restores)
HKCU\System\GameConfigStore, GameDVR_Enabled01
HKLM\SOFTWARE\Policies\Microsoft\Windows\GameDVR, AllowGameDVR0not present
HKCU\Software\Microsoft\Windows\CurrentVersion\GameDVR, AppCaptureEnabled01
HKCU\Software\Microsoft\GameBar, ShowStartupPanel0not present
HKCU\Software\Microsoft\GameBar, UseNexusForGameBarEnabled0, except on a dual-CCD Ryzen X3Dnot present

All are DWORD. On a dual-CCD X3D processor the box leaves the last value alone: the recording pipeline is still switched off, but the Game Bar piece that AMD's driver listens to stays running. That is a precaution, not a proven cause, and the box's message says which path it took. Ryzen X3D, Game Bar and core parking explains why that piece matters on those chips.

Check it yourself

These commands only read:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl" /v Win32PrioritySeparation
reg query "HKCU\System\GameConfigStore" /v GameDVR_Enabled
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\GameDVR"
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\GameDVR" /v AllowGameDVR
reg query "HKCU\Software\Microsoft\GameBar"

How to read the answers:

What the scan does with all this

What the stutter scan looks for runs these checks against what Windows and your drivers already recorded, and labels every finding as proven, likely, a candidate or not checked. Two things worth knowing: a scan that always finds ten problems is selling you the fixes, and a check that could not run is counted rather than quietly treated as clean.

Then change one thing and capture the same scene again. Five changes and one measurement tell you nothing about which one mattered, and anything that did not move a number should be undone.

Things that are not the cause

These circulate endlessly as stutter fixes, and w0a refuses to write every one of them, for reasons on record:

On a machine that is not short of memory, a memory cleaner changes nothing measurable.

Related

Playing CS2? Which launch options still do anything, and where the frames really are in the video menu: How to fix CS2 stutter and low FPS: a measured checklist

w0a changes no Windows setting until you ask it to, and before a tweak writes a new value it saves the old one. Get notified

Did this page help?

What was missing, or what did not work? We read every one of these.

If this page did not solve it, write to us — say which article you read, and we will fix the article.