
Les premiers tests montrent de modestes gains de performances
Linux n’a jamais été la plateforme de jeu par excellence. Pourtant, la société Valve la considère comme « l'avenir du jeu » et estime que les systèmes fermés sont en contradiction avec l’évolution du marché du jeu vidéo. L’éditeur de Steam souhaite depuis longtemps que Linux remplace Windows en tant que plateforme majeure de jeu sur PC et c’est probablement l’une des raisons pour lesquelles il redouble d’efforts afin de « mettre Linux à niveau ».
L’année dernière, Valve a officialisé Steam Play et Proton, un outil utilisé par le client Linux de Steam pour fournir la compatibilité interplateformes Windows-Linux et permettre de jouer facilement à des jeux Windows ou d’exécuter des applications 3D Windows sous Linux. Proton est construit autour d’une version personnalisée de Wine et intègre d’autres bibliothèques développées en parallèle. Il est entièrement open source et offre dans bien des cas des performances supérieures à Wine, la couche logicielle de compatibilité grâce à laquelle il est possible d’utiliser sur un environnement Linux, FreeBSD et macOS des applications Windows.
Les implémentations de DirectX 11 et 12 dans Proton sont basées sur Vulkan (DXVK et vkd3d) et les performances dans les jeux multithreads auraient été grandement améliorées par rapport à celles de Wine. Des optimisations apportées au support plein écran et au support des contrôleurs de jeu afin qu’en mode plein écran, les jeux puissent s’ajuster harmonieusement à la résolution désirée sans interférer avec la résolution native du moniteur et qu’ils puissent reconnaitre automatiquement les contrôleurs pris en charge par Steam sont également de la partie.
Dans la version la plus récente des notes de mise à jour de son outil Proton, Valve propose désormais d’apporter des changements au noyau Linux afin de surmonter les problèmes rencontrés en essayant de lancer certains jeux et de rendre les distributions Linux plus « game-friendly ». L’éditeur de Steam veut notamment étendre la fonctionnalité futex() et apporter des modifications à glibc et à lbpthread afin d’améliorer les opérations multithreadées.
À ce propos, Valve a expliqué : « Nous proposons d’apporter des changements au noyau Linux pour étendre l’appel système futex() afin d’exposer ce que nous pensons être la fonctionnalité essentielle supplémentaire nécessaire pour supporter une synchronisation optimale du pool de threads ».
Valve suggère en premier lieu de remplacer la fonctionnalité baptisée esync par une nouvelle encore expérimentale appelée fsync, qui fournit « une prise en charge des primitives de synchronisation intraprocessus basées sur un futex » et réduit davantage l’utilisation du processeur que esync. Toutefois, comme cela nécessite l’utilisation de la fonction eventfd() du noyau Linux, des modifications de ce dernier sont nécessaires pour fonctionner correctement.
Dans les premiers tests prenant en compte ces changements, Valve a noté des gains de performance de 4 % sur le jeu Beat Saber et de 1,5 % sur Shadow of the Tomb Raider avec Proton. L’entreprise est malgré tout persuadée que des améliorations significatives pourront être obtenues ultérieurement. La version 4.11 de Proton devrait bénéficier du patch fsync pour utiliser le nouveau noyau lorsqu’il sera supporté.
Source : LKML
Et vous ?


Voir aussi




Vous avez lu gratuitement 4 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.