COMPTOIR
Neeed   
register

Proton se fortifie avec Wine 11 et étend son support à l’ARM64

Valve a déployé une nouvelle branche Proton 11 en version bêta. Elle s’appuie sur les évolutions récentes de Wine 11 et introduit donc les améliorations liées à la synchronisation des threads, avec à la clé des gains de performances potentiels dans certains jeux. Wine 11 marque une étape importante avec la prise en charge de NTSync via le noyau Linux, un mécanisme destiné à améliorer la gestion de la synchronisation des applications Windows. Un point clé, puisque ces mécanismes influencent directement les performances des jeux exécutés via Proton.

pragmata

Pilote NTSync

Jusqu’ici, Proton s’appuyait sur des couches de synchronisation comme esync et fsync. NTSync propose une approche différente en déplaçant une partie de cette logique directement dans le noyau Linux. L’objectif est de réduire les surcharges liées à la reproduction des primitives de synchronisation de Windows NT. Les gains ne se traduisent pas forcément par des FPS plus élevés en moyenne, mais doivent au moins assurer une meilleure régularité d’exécution, avec des 1 % et 0,1 % low plus solides.

Quelques explications ne seront pas de trop. Un jeu Windows exécuté via Proton ne communique pas directement avec le noyau Linux. Il passe par Wine, qui traduit les appels système et API Windows vers des équivalents Linux. Pour ce faire, il s’appuie notamment sur esync (Eventfd Synchronization), un mécanisme qui remplace les objets de synchronisation Windows par des primitives du noyau Linux (eventfd), afin de réduire le nombre d’appels système. Cette approche améliore les performances, mais reste imparfaite : la traduction entre les deux modèles engendre une surcharge CPU, et certains comportements propres à Windows ne sont pas reproduits fidèlement, ce qui peut affecter la stabilité de certains jeux. fsync (Futex Synchronization) constitue une évolution plus aboutie. Il s’appuie sur les futex du noyau Linux pour se rapprocher davantage du modèle Windows NT, tout en offrant un meilleur équilibre entre performances et compatibilité. En contrepartie, il nécessite des patchs spécifiques du noyau ou des configurations non standard.

Linux 6.14 introduit le support de NTSync, un mécanisme qui va plus loin en implémentant directement certaines primitives de synchronisation issues du modèle Windows NT dans le noyau Linux. L’objectif est de réduire les couches d’abstraction entre le jeu et le système, tout en améliorant la cohérence des timings d’exécution.

Concrètement, des benchmarks réalisés par des développeurs montrent des gains variables selon les jeux et les configurations.

JeuUpstreamNTSyncAmélioration
Anger Foot 69 99 43 %
Call of Juarez 99.8 224.1 125 %
Dirt 3 110.6 860.7 678 %
Forza Horizon 5 108 160 48 %
Lara Croft: Temple of Osiris 141 326 131 %
Metro 2033 164.4 199.2 21 %
Resident Evil 2 26 77 196 %
The Crew 26 51 96 %
Tiny Tina's Wonderlands 130 360 177 %
Total War Saga: Troy 109 146 34 %

Ils notent toutefois que « le gain de performances varie fortement selon l’application concernée et le matériel de l’utilisateur. Pour certains jeux, la synchronisation NT n’est pas un goulot d’étranglement et aucun changement n’est observable, tandis que pour d’autres, des améliorations de 50 à 150 % du taux d’images par seconde ne sont pas inhabituelles ». En somme, ce sont surtout les titres fortement dépendants du multi-thread, où les surcoûts de synchronisation constituent un point de contention majeur, qui devraient tirer le plus grand bénéfice de tout ceci.

En parallèle, Valve introduit également une déclinaison Proton 11.0 (ARM64). Cette variante cible les architectures Arm et s’inscrit dans la préparation du Steam Frame, le casque VR autonome de la firme. L’objectif est de permettre l’exécution de jeux x86 sur architecture Arm, toujours via la couche de compatibilité Proton. Et possiblement au-delà du Steam Frame.

Un poil avant ?

Intel lance les Wildcat Lake pour des PC portables aux prix domptés

Yapa de ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !