Ca fait un moment que je galère sur des soucis de stuttering illogiques sur divers jeux. J'ai tenté un paquet de choses, hardware comme software, sans jamais déboucher sur le moindre résultat.
Mais là j'ai enfin trouvé la source d'une grosse partie de mes stuttering.
Je ne parle pas des stuttering liés aux compilations des shaders et encore moins de ceux liés aux mouvements des caméras. S'il est parfois possible de trouver des petites solutions pour ceux là, c'est propre au travail des devs des jeux. Même chose pour les traversal stutters, qui sont liés au chargement des ressources, mais ceux que j'ai réglés peuvent facilement parfois se confondre avec du traversal stuttering.
Dans mon cas, je parle de stuttering que je rencontre principalement sur des jeux pas gourmands. Dernièrement, des titres comme Duskers, Inside, ou même des FPS bien optimisés.
J'ai identifié que si je jouais avec l'attribution des core pour les jeux, je pouvais réduire les stuttering, mais sans trouver de pattern fiable ni même de logique qui pourrait expliquer la création de stuttering sur un I7 12700k.
En trifouillant tout ça, j'ai réalisé que la majorité du temps, les core de mon CPU étaient en "parking". C'est un état de veille défini par Windows, en fonction de la charge de travail, pour qu'un core consomme peu d'énergie.
Sauf que dans mon cas, les core utilisés par les jeux se retrouvent souvent dans cet état, sans doute car la consommation des jeux est misérable par rapport à la puissance du CPU et j'ai constaté que les stuttering semblaient coïncider avec des changements d'états des core. Je ne sais pas ce qu'implique ce changement d'état derrière, mais clairement ça me semble bien plus logique qu'il y ait un impact sur les performances à ce niveau.
Ma solution miracle, elle est là : https://bitsum.com/parkcontrol/
Cette simple application permet de désactiver le parking des CPU et depuis, plus de stuttering (hors compilation shaders et autre, comme je disais plus haut). J'ai testé divers jeux qui me posaient soucis, le résultat est totalement concluant.
A noter que je n'ai même pas besoin de lancer l'app ou les services associés. Je ne sais pas si c'est lié à l'installation de ParkControl ou de Process Lasso (de la même entreprise), mais ça permet d'afficher le contrôle de cette feature directement dans les options de gestion d'alimentation (ça doit pouvoir se rendre accessible sans installer les apps, via une modif registre ou autre).
J'ai ainsi défini un 100% sur cette option sur le profil de performances élevés, et je passerais dessus quand je voudrais jouer maintenant.
Dernier détail, depuis que j'ai fait ce changement le système semble déployer la charge de travail sur une grande partie des cores. Avant en lançant ces jeux qui me posent soucis, je n'avais que le core 8 (utilisé aussi par discord et steam), un tout petit peu du 10 et les e-core, qui étaient utilisés.
Ce soucis est tellement débile et peut concerner facilement plein d'autres personnes, je préfère partager l'information.
Peut-être que Windows 11, notamment avec l'intégration du thread director de Intel, règle ce problème.