DEV Community

Izanagi
Izanagi

Posted on

MMCSS explained: why your game thread gets starved and how to fix it

MMCSS — Multimedia Class Scheduler Service — is Windows' mechanism for giving time-critical threads priority access to CPU resources. Games and audio applications use it. Most people have never touched the configuration.

How it works

Applications call AvSetMmThreadCharacteristics() to register with MMCSS under a named task (like "Games" or "Audio"). MMCSS then boosts that thread's priority and gives it a higher percentage of CPU time.

The configuration for each task lives in the registry:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games
Enter fullscreen mode Exit fullscreen mode

Default values vs gaming-optimal values

Setting Default Gaming
Priority 2 6
Scheduling Category Medium High
GPU Priority 8 8
SFIO Priority Normal High
Background Only True False

The default Priority of 2 means your game thread competes with most other threads. Setting it to 6 with High scheduling category moves it to a tier where only system-critical threads can preempt it.

SystemResponsiveness

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
SystemResponsiveness = 0
Enter fullscreen mode Exit fullscreen mode

This controls how much CPU time MMCSS reserves for non-multimedia tasks. Default is 20% (Windows reserves 20% of CPU for background processes even when a multimedia task needs it). Setting it to 0 allows MMCSS tasks to use 100% of CPU when needed.

NetworkThrottlingIndex

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
NetworkThrottlingIndex = 4294967295
Enter fullscreen mode Exit fullscreen mode

By default, Windows throttles network processing when MMCSS tasks are running (to protect the game from network interrupts). Setting this to max disables the throttling — useful when you want both game priority AND network performance.

IzanagiOP configures the full MMCSS suite: Games, Audio, Playback, DisplayPostProcessing, Capture. All priority values are set to gaming-optimal. Discord: https://terweb.lt/

Top comments (0)