Win 32 Priority Separation

Win32PrioritySeparation is a Windows Registry value that controls how the system prioritizes CPU resources between foreground (active) applications and background services.

This setting essentially affects how thread scheduling works, especially when the system is under load, by influencing quantum lengths and priority boosts. This can affect frames and responsiveness in video gaming scenarios.

Casual Breakdown:

It’s a registry setting in Windows that controls how your computer splits attention between: The app you’re using right now (foreground); and stuff running in the background (like updates, services)

Why It Matters?

This setting tells Windows: How long each app gets to use the CPU before switching, it determines whether your current app gets more love (runs faster/smoother)

In your search bar type and open up the registry editor. The value can be located at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl And should be a dword named Win32PrioritySeparation

Through the testing of many optimizers within the community, recommended values from nearly all good optimizers are 1a or 2a (you insert these values as hexadecimal) But there have been many recorded instances in which other values will work better on some machines; it’s important to test these values for yourself and to not blindly trust specific values.

Default Value

  • for Programs is 26hex/38dec
  • for Background Services is 18hex/24dec

Khorvie Recommendation:

2a is generally more stable for system latency and frames but 1a has the potential on some systems to do this but much better. Try and test 2a for yourself for roughly 30 minutes then do the same with 1a, using capframex for benchmarks would be ideal but if you’re unwilling then just go by feel.

DecimalHexBinaryQuantum LengthQuantum TypeForeground BoostOutcome
240x18011000LongFixedNoneDefault for Background Services; balanced, equal CPU distribution
260x1A011010LongFixedHighCustom; long slices, but boosted active apps
380x26100110ShortFixedHighDefault for Programs; snappy UI, responsive foreground apps
420x2A101010ShortFixedHighCustom; ultra-responsive, aggressive boost to frontmost app

Does it legitimately affect performance

It does but it likely won’t be anything super significant, expect results between different values within a 5% difference (estimation comes from prior benchmarks from myself, and from me looking at data by FrameSyncLabs, and AlchemyTweaks both of which you can find on youtube)

The Rock Breakdown:

Bit Structure:

Win32PrioritySeparation is a REG_DWORD that uses the lowest 6 bits (bits 0–5) to control CPU scheduling behavior. The most important bits are:

  • Bits 0–1: Foreground boost level (0 = none, 1 = medium, 2 = high)
  • Bit 2: Quantum type (0 = variable, 1 = fixed)
  • Bit 3: Quantum length (0 = short, 1 = long)
  • Bits 4–5: Reserved/unused by most Windows versions

This means valid values range from 0 to 63 (0x00 to 0x3F in hex), and commonly used values like 0x1A, 0x2A, 0x18, and 0x26 are all valid and meaningful.

Scheduling Impact:

  • Short quantum = faster context switches, more responsive but more overhead
  • Long quantum = less switching, better throughput but can make UIs laggy
  • Foreground boost = dynamic priority boosts for active app threads
  • Variable quantum = adjusts time slice length based on thread priority; foreground apps may get longer quanta, improving responsiveness under load
  • Fixed quantum = all threads get equal time slices regardless of priority; more consistent but less responsive to active app needs

Windows uses this to modify base scheduling behavior, not override thread priorities.

Deep Usage Notes:

  • Used by kernel scheduler to scale quantum ranges (e.g., 20ms vs 120ms)
  • Doesn’t affect real-time classes or explicitly boosted threads
  • Greatly influenced by thread priority class (e.g., NORMAL_PRIORITY_CLASS)
DecimalHexBinaryQuantum LengthQuantum TypeForeground BoostReserved Bits
00x00000000ShortVariableNone00
10x01000001ShortVariableMedium00
20x02000010ShortVariableHigh00
30x03000011ShortVariableReserved/Unknown00
40x04000100ShortFixedNone00
50x05000101ShortFixedMedium00
60x06000110ShortFixedHigh00
70x07000111ShortFixedReserved/Unknown00
80x08001000LongVariableNone00
90x09001001LongVariableMedium00
100x0A001010LongVariableHigh00
110x0B001011LongVariableReserved/Unknown00
120x0C001100LongFixedNone00
130x0D001101LongFixedMedium00
140x0E001110LongFixedHigh00
150x0F001111LongFixedReserved/Unknown00
160x10010000ShortVariableNone01
170x11010001ShortVariableMedium01
180x12010010ShortVariableHigh01
190x13010011ShortVariableReserved/Unknown01
200x14010100ShortFixedNone01
210x15010101ShortFixedMedium01
220x16010110ShortFixedHigh01
230x17010111ShortFixedReserved/Unknown01
240x18011000LongVariableNone01
250x19011001LongVariableMedium01
260x1A011010LongVariableHigh01
270x1B011011LongVariableReserved/Unknown01
280x1C011100LongFixedNone01
290x1D011101LongFixedMedium01
300x1E011110LongFixedHigh01
310x1F011111LongFixedReserved/Unknown01
320x20100000ShortVariableNone10
330x21100001ShortVariableMedium10
340x22100010ShortVariableHigh10
350x23100011ShortVariableReserved/Unknown10
360x24100100ShortFixedNone10
370x25100101ShortFixedMedium10
380x26100110ShortFixedHigh10
390x27100111ShortFixedReserved/Unknown10
400x28101000LongVariableNone10
410x29101001LongVariableMedium10
420x2A101010LongVariableHigh10
430x2B101011LongVariableReserved/Unknown10
440x2C101100LongFixedNone10
450x2D101101LongFixedMedium10
460x2E101110LongFixedHigh10
470x2F101111LongFixedReserved/Unknown10
480x30110000ShortVariableNone11
490x31110001ShortVariableMedium11
500x32110010ShortVariableHigh11
510x33110011ShortVariableReserved/Unknown11
520x34110100ShortFixedNone11
530x35110101ShortFixedMedium11
540x36110110ShortFixedHigh11
550x37110111ShortFixedReserved/Unknown11
560x38111000LongVariableNone11
570x39111001LongVariableMedium11
580x3A111010LongVariableHigh11
590x3B111011LongVariableReserved/Unknown11
600x3C111100LongFixedNone11
610x3D111101LongFixedMedium11
620x3E111110LongFixedHigh11
630x3F111111LongFixedReserved/Unknown11
End of Article; feel free to reach out if you spot any typos/errors and I will gladly fix them <3 Khorvie
Written on June 4, 2025