CPU scheduling and thread priority

The MMCSS Games task profile

GPU Priority, Priority, Scheduling Category, SFIO Priority — and which of them Windows actually reads

Last updated

What do the MMCSS Games registry values do?

Under the MMCSS SystemProfile there is a Tasks subkey containing a Games profile, and adjusting its values is one of the most widely shared gaming tweaks there is. Microsoft's documentation is explicit that two of the values people are told to change -- GPU Priority and SFIO Priority -- are not used by the system at all, and that the Clock Rate guarantee was removed in Windows 7.

Registry location and values

GPU Priority

Location
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games
Value name
GPU Priority
Type
REG_DWORD
Default
8
ValueWhat it does
0-31Documented range. Microsoft states: "This priority is not yet used." Changing it has no effect.

Priority

Location
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games
Value name
Priority
Type
REG_DWORD
Default
2
ValueWhat it does
1-8Task priority, 1 low to 8 high. Real, but note the caveat below.
CaveatFor tasks whose Scheduling Category is High, Priority is always treated as 2 regardless of what you set.

Scheduling Category

Location
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games
Value name
Scheduling Category
Type
REG_SZ
Default
Medium
ValueWhat it does
HighThread priority 23-26. Intended for Pro Audio. Forces Priority to be treated as 2.
MediumThread priority 16-22. Threads belonging to the foreground application. The default for Games.
LowThread priority 8-15.

SFIO Priority

Location
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games
Value name
SFIO Priority
Type
REG_SZ
Default
High
ValueWhat it does
Idle, Low, Normal, HighScheduled I/O priority. Microsoft states: "This value is not used."

Clock Rate

Location
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games
Value name
Clock Rate
Type
REG_DWORD
Default
10000
ValueWhat it does
100-nanosecond unitsA scheduling granularity hint. On Windows Vista this was a guaranteed maximum clock rate; from Windows 7 onward that guarantee was removed to reduce power consumption.

What Windows actually does with this

A process calls AvSetMmThreadCharacteristics naming a task such as "Games". MMCSS then applies the characteristics stored under that task's registry key to the calling thread. Scheduling Category maps to a thread priority band; Priority positions the thread within it. The other values in the key are read but, per Microsoft's own documentation, are either unused or no longer honoured.

What it affects

Only processes that explicitly register with MMCSS under the Games task. A game that never calls the API is completely unaffected by anything in this key, whatever the values say.

Is it worth changing?

Setting GPU Priority to 8 is the most widely repeated gaming registry tweak in existence and Microsoft documents the value as unused. The same is true of SFIO Priority. Scheduling Category and Priority are real, but raising Games to High is counterproductive: it forces Priority to be treated as 2 and puts game threads in a band designed for professional audio, above much of the system. The defaults here are sensible and there is no good reason to change them.

What can go wrong

Setting Scheduling Category to High can starve system threads and produce stutter rather than remove it. The other values are inert, so the risk of changing them is that you believe you have fixed something and stop looking for the real cause.

How to undo it

Restore the defaults listed above: GPU Priority 8, Priority 2, Scheduling Category Medium, SFIO Priority High, Clock Rate 10000. A restart is not required, but a process must re-register to pick up changes.

Create a System Restore Point before editing the registry. Every setting on this page is reversible, but a restore point is the difference between undoing one change and reinstalling Windows.

Which Windows versions this applies to

Windows Vista and later. Clock Rate behaviour changed in Windows 7.

The MMCSS Games task profile: common questions

If GPU Priority does nothing, why does every guide recommend it?

The value exists, sits in a key named Games, and is called GPU Priority, so the inference is reasonable. It was reserved for a feature that was never implemented. Microsoft's MMCSS reference has said "not yet used" for many years.

Does my game even use MMCSS?

Most do not. You can check with a tool that lists MMCSS-registered threads. If nothing has joined the Games task, the entire key is inert for you.

Sources

Related settings