Aller au contenu

Win32PrioritySeparation : latence et FPS à pleine charge CPU

Sur cette page

Réponse courte : Win32PrioritySeparation contrôle effectivement le foreground boost et une partie de la politique de quanta du CPU. Notre test historique n’a pas révélé de valeur universellement meilleure. La valeur par défaut de Windows a montré une latence click-to-photon moyenne légèrement inférieure, tandis que 0x1A a coïncidé avec les meilleurs FPS et P1 dans un test à 100 % de charge CPU. En l’absence de répétitions FPS indépendantes et d’échantillons click bruts, nous recommandons la valeur par défaut, et nous considérons 0x1A uniquement comme une hypothèse vérifiable pour le scénario CPU.

Statut : le lien entre le paramètre et le foreground boost est documenté par Microsoft. La lecture du paramètre a été observée dans des traces système Windows 11 24H2 et 25H2 collectées précédemment. L’effet utilisateur a été mesuré dans une série historique Windows 10 22H2, mais n’a pas été reproduit sur un autre système ni lors d’un lancement indépendant.

Nous avons vérifié trois affirmations distinctes qu’il ne faut pas confondre :

  1. Le paramètre existe et est lié à la politique du planificateur Windows.
  2. Les valeurs 0x02 et 0x1A représentent des politiques de quanta différentes avec le même foreground boost maximal.
  3. 0x1A améliore les FPS ou la latence du jeu à pleine charge CPU.

Les deux premières affirmations sont confirmées par la documentation publique et par l’observation sur les builds étudiés. La troisième exige des mesures et ne devient pas vraie du seul fait de la conception du paramètre.

Couche Environnement Résultat
Documentation publique Microsoft WMI, CPU Analysis et Windows Internals Le foreground boost, le quantum et la structure binaire historique sont décrits
Observation système Windows 11 24H2 et 25H2 La lecture du paramètre a été observée dans des traces collectées précédemment
Click-to-photon Windows 10 22H2, Valorant, CPU 100 % 300 mesures par valeur, les agrégats sont conservés
FPS La même série historique Une capture CapFrameX par configuration ; certaines lignes sont inutilisables à cause d’un blocage de la capture

Il n’existe pas de trace dynamique Windows 10 22H2 pour cette publication. Il n’existe pas non plus de trace exploitable pour Windows 11 26H1. Les mesures Windows 10 ne se transposent pas à Windows 11 sans répétition.

Champ Valeur
Hive et chemin HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl
Nom de la valeur Win32PrioritySeparation
Type REG_DWORD
Valeur initiale documentée du client Windows 0x02 (2)

Windows Internals désigne 2 comme valeur initiale sur le client Windows et sur un serveur qui n’est pas configuré comme application server. Dans notre trace Windows 11 25H2, le DWORD était également présent explicitement avec la valeur 2.

Nous ne considérons donc pas l’absence de valeur comme un Windows default universel. Elle peut apparaître après une modification de l’image, une suppression manuelle ou l’action d’un outil tiers, mais dans l’étude actuelle, le scénario clean-install avec un DWORD absent n’a pas été reproduit dynamiquement. L’absence de la ligne ne peut pas être automatiquement interprétée comme 0.

Microsoft associe la propriété Win32_OperatingSystem.ForegroundApplicationBoost à Win32PrioritySeparation et documente les valeurs 0, 1 et 2 : sans boost, boost minimal et boost maximal de l’application foreground.

L’échantillon officiel Windows Internals Sixth Edition décrit le paramètre comme un ensemble de champs :

Bits Rôle
0-1 Degré de foreground boost
2-3 Quanta variables ou fixes
4-5 Quanta courts ou longs

0x02 est la valeur initiale documentée du client Windows : elle définit le foreground boost maximal et laisse les autres champs à la politique système. Pour le client Windows, cela correspond historiquement à des quanta courts variables, qui peuvent être explicitement exprimés par 0x26. 0x1A définit des quanta longs fixes avec le même foreground boost maximal.

Le projet open source Win32PSCalculator montre directement cette équivalence. Il masque l’entrée via 0x3F, décompose les trois champs de deux bits et ramène les différentes écritures à l’une des 12 combinaisons canoniques. Cela aide à détecter les valeurs placebo qui semblent différentes mais ne créent pas de nouveau scheduler mode.

Le document Windows Internals est historique. Nous l’utilisons pour interpréter les champs, mais nous n’affirmons pas que toutes les tables de quantum internes sont inchangées dans toutes les builds modernes.

Décodeur 6 bits

Vérification du mode réel

Win32PSCalculator ↗

Saisissez la valeur trouvée dans la liste des tweaks. Le calculateur n'affichera que les six bits utilisés et la combinaison canonique avec le même mode. Il ne modifie rien sur l'ordinateur.

Hex avec le préfixe 0x, sans préfixe : décimal.

Mode équivalent0x26

Default Windows : sur Windows client, correspond au mode explicite 0x26.

000010
Saisi
0x00000002 · 2
Après le masque 0x3F
0x02 · 2
Quanta
Default système → courts
Type
Default système → variables
Boost foreground
Maximal · 3:1

Le calculateur fonctionne uniquement dans le navigateur et ne lit ni ne modifie le Registry. Son résultat montre l’équivalence des combinaisons binaires, et non les FPS ou la latence attendus. La même version est disponible sur la page de réglage BoosterX.

Pourquoi le résultat peut dépendre de la charge

Section intitulée « Pourquoi le résultat peut dépendre de la charge »

Le planificateur choisit un thread prêt en tenant compte de la priority, de l’affinity, de l’état et du quantum restant. Une fois le quantum épuisé, le thread peut céder le processeur à un autre thread prêt de même priority. Le changement de contexte a un coût, c’est pourquoi des quanta plus longs peuvent réduire le scheduler turnover et soutenir le throughput en cas de forte concurrence pour le CPU.

Cela explique la direction possible de l’effet, mais ne promet pas de gain pour le jeu. Un quantum fixe plus long peut simultanément dégrader la réactivité des autres threads. Si le CPU n’est pas la contrainte, il peut n’y avoir aucun gain mesurable.

Le test a été réalisé dans Valorant sous Windows 10 22H2 avec une charge CPU enregistrée de 100 %. Pour chaque valeur du Registry, 300 mesures click-to-photon ont été effectuées avec le banc matériel BoosterX. Le signal électrique du bouton de la Logitech G PRO X SUPERLIGHT déclenche le chronomètre, et le capteur photo l’arrête après un changement de luminosité à l’écran. Le trajet complet est décrit dans la méthodologie des recherches.

Le tableau conserve les AVG, STDDEV, MIN et MAX de la latence. Pour les FPS, CapFrameX a été utilisé, mais le bloc disponible ne contient qu’une seule capture par configuration. Pour certaines valeurs, la capture se bloquait, c’est pourquoi ces lignes FPS sont marquées comme indisponibles et ne sont pas reconstituées par des suppositions.

Les 300 échantillons click bruts, le P90, les distributions, le manifest matériel/pilote exact et les répétitions FPS indépendantes ne sont pas rattachés à cette ancienne série. Cela limite la conclusion statistique.

Valeur Politique AVG, ms SD, ms MIN, ms MAX, ms FPS AVG P1 P0.1
0x2A courte, fixe, boost élevé 16.61 2.69 10.53 21.96 351.3 226.2 43.9
0x29 courte, fixe, boost moyen 17.08 3.02 10.31 25.09 336.8 254.9 14.3
0x28 courte, fixe, sans boost 17.62 4.94 10.19 47.04 n/d n/d n/d
0x26 équivalent explicite du default 0x02 15.28 3.12 9.30 23.08 334.4 111.6 36.9
0x25 courte, variable, boost moyen 16.90 2.73 11.42 23.97 334.7 102.6 27.6
0x24 courte, variable, sans boost 18.71 4.66 11.88 32.48 n/d n/d n/d
0x1A longue, fixe, boost élevé 15.68 3.31 9.97 23.30 355.1 256.0 41.0
0x19 longue, fixe, boost moyen 16.80 2.61 10.08 21.95 352.0 272.9 21.5
0x18 longue, fixe, sans boost 22.74 8.81 11.65 55.10 n/d n/d n/d
0x16 longue, variable, boost élevé 16.77 2.88 11.32 23.97 346.4 200.1 34.0
0x15 longue, variable, boost moyen 16.13 2.34 10.08 20.95 332.1 144.4 17.8
0x14 longue, variable, sans boost 19.87 5.55 12.43 52.31 n/d n/d n/d

н/д signifie une capture FPS inutilisable ou absente, et non un résultat nul.

Métrique Default / équivalent 0x26 0x1A Différence observée
Click-to-photon AVG 15.28 ms 15.68 ms 0x1A supérieur de 0.40 ms, environ 2.6 %
Click-to-photon SD 3.12 ms 3.31 ms 0x1A supérieur de 0.19 ms
FPS AVG 334.4 355.1 0x1A supérieur de 20.7, environ 6.2 %
P1 111.6 256.0 0x1A supérieur de 144.4
P0.1 36.9 41.0 0x1A supérieur de 4.1

La différence de latence moyenne de 0.40 ms est nettement inférieure à la dispersion conservée d’environ 3 ms. Sans échantillons bruts, il est impossible de construire correctement un intervalle de confiance ou de vérifier la forme de la distribution. La différence de FPS est grande selon les chiffres descriptifs, mais une seule capture par état ne prouve pas la reproductibilité et n’exclut pas l’influence de l’ordre des passages ou de la charge de fond.

  • Le paramètre est lié au foreground boost et à la politique de quanta du planificateur Windows.
  • Sa lecture a été observée dans les Windows 11 24H2 et 25H2 étudiés.
  • Dans la série historique Windows 10 22H2, 300 mesures click-to-photon par valeur ont été effectuées.
  • Parmi les états avec un foreground boost élevé, l’équivalent default 0x26 a montré la latence moyenne la plus faible.
  • Dans la même capture historique, 0x1A a montré les FPS AVG et P1 les plus élevés parmi les états avec un boost élevé.
  • Que 0x1A augmente toujours les FPS, le P1 ou la fluidité des frames.
  • Que 0x1A réduit le click-to-photon ou l’input latency.
  • Que le résultat se répète sur Windows 11, un autre CPU, dans un autre jeu ou sans pleine charge CPU.
  • Que des valeurs arbitraires issues de listes de tweaks tierces sont utiles ou sûres.
  • Que les différences sont statistiquement significatives : pour l’ancienne série, il n’y a ni échantillons bruts ni répétitions FPS indépendantes.

Le tableau historique ne contient pas de manifest complet rattaché du matériel, des versions de pilote et de jeu, de la température, du power state et de l’ordre des passages. Les fenêtres d’une même capture ne sont pas considérées comme des répétitions indépendantes. Les erreurs CapFrameX ont touché principalement les états sans foreground boost, c’est pourquoi la matrice FPS complète ne peut pas être comparée.

L’étude et les outils utilisés appartiennent au développeur de BoosterX, qui fournit ce réglage, le développeur a donc un intérêt direct aux résultats. La méthodologie et les limites d’applicabilité sont décrites ci-dessus, et les conclusions peuvent être vérifiées à partir des données ouvertes et des sources publiques citées. C’est pourquoi le default reste la recommandation, et le FPS historique plus élevé de 0x1A est publié avec le résultat négatif sur la latence moyenne et toutes les limitations.

Laissez Windows default (0x02) sur la plupart des systèmes client Windows 10 et 11. N’appliquez pas 0x1A comme une « optimisation du planificateur » universelle. Windows Server a une autre scheduler policy, n’a pas été mesuré et n’entre pas dans cette recommandation.

La vérification de 0x1A n’est justifiée qu’en cas de CPU saturation reproductible. Utilisez plusieurs passages appariés, alternez l’ordre, enregistrez les FPS moyens, le P1, le P0.1, les frametime spikes et le click-to-photon. Ne conservez la modification qu’en cas d’amélioration reproductible de la métrique cible sans nouvelle dégradation.

Page du réglage gratuit et méthode exacte de retour : Win32PrioritySeparation dans BoosterX.

Après la comparaison, remettez le paramètre sur Windows default (0x02) via BoosterX et effectuez le redémarrage proposé par l’interface. Dans le jeu de données historique, aucune entrée distincte sur la vérification du retour n’a été conservée, c’est pourquoi cette étude ne considère pas la recovery comme une partie confirmée de l’ancienne expérience.

Sources publiques et formulations vérifiées : 2026-08-24.

  • 2026-09-20 : le disclaimer sur le conflit d’intérêts est renforcé jusqu’à une formulation complète avec l’appartenance de l’étude et des outils.
  • 2026-08-24 : ajout de l’emplacement exact de la Registry value, de la valeur initiale documentée 0x02, de Win32PSCalculator et des limites d’interprétation d’un DWORD absent.
  • 2026-08-24 : première publication ; ajout de la matrice historique complète, de la séparation entre mécanisme et effet utilisateur, ainsi que de la recommandation du default.