CPU scheduling and thread priority
Win32PrioritySeparation
The foreground thread quantum setting, and why 0x26 usually changes nothing on a desktop
Last updated
What does Win32PrioritySeparation actually do?
Win32PrioritySeparation is a single DWORD that packs three separate scheduling decisions into six bits: whether threads get short or long time slices, whether those slices are variable or fixed, and how much extra CPU time the foreground window's threads receive. It is real and documented. What is usually wrong is the claim that setting it to 0x26 transforms a gaming PC, because on a Windows client install the default value of 2 already selects short, variable quantums with a foreground boost.
Registry location and values
Win32PrioritySeparation
- Location
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl- Value name
Win32PrioritySeparation- Type
REG_DWORD- Default
- 2 (0x02) on Windows client editions
| Value | What it does |
|---|---|
0x26 (38) | Short, variable quantums, foreground boost 2. What Performance Options writes when you choose "Adjust for best performance of: Programs". |
0x18 (24) | Long, fixed quantums, no foreground boost. What Performance Options writes for "Background services". This is the server-style setting. |
0x02 (2) | The Windows client default. Bits 4-5 and 2-3 are zero, which means "use this SKU's default" -- on client that resolves to short and variable, with a foreground boost of 2. |
0x00 (0) | Everything defaults to the SKU behaviour, including no explicit boost. |
What Windows actually does with this
The value is three 2-bit fields. Bits 4-5 choose short or long quantums. Bits 2-3 choose variable or fixed quantums. Bits 0-1 set the foreground priority boost, from 0 (none) to 3. A quantum is the slice of CPU time a thread gets before the scheduler reconsiders. Short quantums mean the scheduler switches between runnable threads more often; variable quantums mean the foreground application's threads get a longer slice than background ones.
What it affects
How often Windows switches between threads, and how much extra CPU time the focused window gets relative to everything else. On a machine with spare CPU headroom, no observable difference. On a CPU-saturated machine, it changes which work gets starved first.
Is it worth changing?
Largely a no-op on a default Windows 10 or 11 desktop. The 0x26 that every guide recommends selects short + variable + boost 2, and the client default of 2 already resolves to short + variable + boost 2 -- 0x26 states explicitly what the default leaves implicit. It is worth setting only if something previously wrote 0x18 (the "Background services" option, which some server-tuning guides and a few OEM images apply). Checking the current value is more useful than changing it.
What can go wrong
Low. No security implication and no stability implication. Long, fixed quantums (0x18) on a desktop make foreground applications feel less responsive under load, which is the opposite of what most people want.
How to undo it
Set the value back to 2, or open Performance Options (SystemPropertiesPerformance.exe) → Advanced and choose Programs. The change takes effect without a restart.
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 10, Windows 11. Behaviour has been stable since Windows NT.
Win32PrioritySeparation: common questions
Is 0x26 better than 0x2A or 0x28?
0x2A sets the foreground boost field to 3 (the maximum) and 0x28 sets it to 0 while keeping short variable quantums. The boost field only decides how many extra quantums the foreground thread gets when it is preempted, and only matters when the CPU is fully committed. On a machine that is not CPU-bound, none of these three values will produce a difference you can measure.
Do I need to restart after changing it?
No. The scheduler reads the new value without a restart.
Does this help if my game is GPU-bound?
No. If the GPU is the limiting factor, changing how the CPU shares time between threads cannot raise the frame rate.
Sources
Does JINSHI Tweaks change this?
This page documents a setting that corresponds to the following toggle in JINSHI PC Tweaks: Win32 Priority Separation (Gaming).
The reference above is written to be usable without the product. Everything here can be applied by hand for free. What the application adds is that the change is applied in one pass, a System Restore Point is created first, and each toggle can be reversed individually.