Valve lance Proton 4.11, une suite pour exécuter des jeux Windows sur Linux

Société de vannes опубликовала nouvelle branche de projet proton 4.11, basé sur les développements du projet Wine et visant à assurer le lancement d'applications de jeux créées pour Windows et présentées dans le catalogue Steam sous Linux. Développements de projets propagé sous licence BSD. Une fois prêtes, les modifications développées dans Proton sont transférées vers le Wine original et les projets associés, tels que DXVK et vkd3d.

Proton vous permet d'exécuter directement des applications de jeu Windows uniquement dans le client Steam Linux. Le package comprend une implémentation de DirectX 10/11 (basée sur Extension DXVK) et 12 (basé sur vkd3d), fonctionnant via la traduction des appels DirectX vers l'API Vulkan, offre une prise en charge améliorée des contrôleurs de jeu et la possibilité d'utiliser le mode plein écran quelles que soient les résolutions d'écran prises en charge dans les jeux. Par rapport au Wine original, les performances des jeux multithread ont été considérablement augmentées grâce à l'utilisation de correctifs "désynchroniser"(Synchronisation Eventfd) ou "futex/fsync".

principal changements dans Proton 4.11:

  • La synchronisation avec la base de code Wine 4.11 a été effectuée, à partir de laquelle plus de 3300 modifications ont été transférées (la branche précédente était basée sur wine 4.2). 154 correctifs de Proton 4.2 ont été déplacés en amont et sont désormais inclus dans le package Wine principal ;
  • Ajout d'un support expérimental pour les primitives de synchronisation basées sur l'appel système futex(), ce qui réduit la charge CPU par rapport à esync. De plus, la nouvelle implémentation résout les problèmes liés à la nécessité d'utiliser paramètres spéciaux pour la synchronisation et l'épuisement éventuel des descripteurs de fichiers disponibles.

    L'essence du travail effectué est d'étendre les fonctionnalités de l'appel système futex() standard dans le noyau Linux avec les capacités nécessaires à une synchronisation optimale du pool de threads. Les correctifs prenant en charge l'indicateur FUTEX_WAIT_MULTIPLE nécessaire pour Proton sont déjà transféré pour inclusion dans le noyau Linux principal et GlibcComment. Les modifications préparées ne sont pas encore incluses dans le noyau principal, il est donc nécessaire pour le moment établir un noyau spécial prenant en charge ces primitives ;

    Valve lance Proton 4.11, une suite pour exécuter des jeux Windows sur Linux

  • intercouche Extension DXVK (implémentation de DXGI, Direct3D 10 et Direct3D 11 en plus de l'API Vulkan) mise à jour vers la version 1.3Et D9VK (une implémentation expérimentale de Direct3D 9 sur Vulkan) jusqu'à la version 0.13f. Pour activer la prise en charge de D9VK dans Proton, utilisez l'indicateur PROTON_USE_D9VK ;
  • Le taux de rafraîchissement actuel du moniteur est transmis aux jeux ;
  • Des correctifs ont été apportés pour gérer le focus de la souris et la gestion des fenêtres ;
  • Correction du décalage d'entrée et des problèmes de prise en charge des vibrations pour les joysticks qui surviennent dans certains jeux, en particulier dans les jeux basés sur le moteur Unity ;
  • Ajout de la prise en charge de la dernière version du SDK OpenVR ;
  • Les composants FAudio avec implémentation des bibliothèques de sons DirectX (API XAudio2, X3DAudio, XAPO et XACT3) ont été mis à jour vers la version 19.07 ;
  • Les problèmes avec le sous-système réseau dans les jeux sur GameMaker ont été résolus ;
  • De nombreux modules Wine sont désormais construits sous forme de fichiers Windows PE au lieu de bibliothèques Linux. À mesure que les travaux progressent dans ce domaine, l'utilisation du PE aidera certains systèmes DRM et anti-triche. Si vous utilisez des versions Proton personnalisées, vous devrez probablement recréer la machine virtuelle Vagrant pour créer les fichiers PE.

Avant que les correctifs de Valve ne soient adoptés dans le noyau Linux principal, l'utilisation de futex() au lieu d'esync nécessite l'installation d'un noyau spécial prenant en charge le pool de synchronisation de threads implémenté dans un ensemble de correctifs. fsync. Pour Arch Linux dans AUR déjà publié paquet de noyau prêt à l'emploi compilé avec les correctifs fsync. Sur Ubuntu 18.04 et 19.04, vous pouvez utiliser le PPA du noyau expérimental linux-mfutex-valve (sudo add-apt-repository ppa:valve-experimental/kernel-bionic ; sudo apt-get install linux-mfutex-valve) ;

Si vous disposez d'un noyau prenant en charge fsync, lorsque vous exécutez Proton 4.11, la console affichera le message « fsync : opérationnel ». Vous pouvez forcer la désactivation de fsync en utilisant l'indicateur PROTON_NO_FSYNC=1.

Source: opennet.ru

Ajouter un commentaire