Valve brengt Proton 4.11 uit, een suite voor het uitvoeren van Windows-games op Linux

Ventiel bedrijf опубликовала nieuwe projecttak Proton 4.11, gebaseerd op de ontwikkelingen van het Wine-project en gericht op het verzekeren van de lancering van gaming-applicaties gemaakt voor Windows en gepresenteerd in de Steam-catalogus op Linux. Projectontwikkelingen worden verspreid onder BSD-licentie. Zodra ze gereed zijn, worden de in Proton ontwikkelde wijzigingen overgebracht naar de oorspronkelijke Wine en aanverwante projecten, zoals DXVK en vkd3d.

Met Proton kun je rechtstreeks gaming-applicaties voor alleen Windows uitvoeren in de Steam Linux-client. Het pakket bevat een implementatie van DirectX 10/11 (gebaseerd op DXVK-extensie) en 12 (gebaseerd op vkd3d), dat werkt via de vertaling van DirectX-aanroepen naar de Vulkan API, biedt verbeterde ondersteuning voor gamecontrollers en de mogelijkheid om de modus Volledig scherm te gebruiken, ongeacht de schermresoluties die in games worden ondersteund. Vergeleken met de originele Wine zijn de prestaties van games met meerdere threads aanzienlijk verbeterd dankzij het gebruik van patches "esync"(Eventfd-synchronisatie) of "futex/fsync".

De belangrijkste veranderingen in Proton 4.11:

  • Er werd synchronisatie met de Wine 4.11-codebase uitgevoerd, waaruit meer dan 3300 wijzigingen werden overgebracht (de vorige tak was gebaseerd op Wine 4.2). 154 patches van Proton 4.2 zijn stroomopwaarts verplaatst en zijn nu opgenomen in het hoofdpakket Wine;
  • Experimentele ondersteuning toegevoegd voor synchronisatieprimitieven op basis van de futex() systeemaanroep, waardoor de CPU-belasting wordt verminderd in vergelijking met esync. Bovendien lost de nieuwe implementatie problemen op met de noodzaak om te gebruiken speciale instellingen voor esynchronisatie en mogelijke uitputting van beschikbare bestandsdescriptors.

    De essentie van het werk dat wordt gedaan is het uitbreiden van de functionaliteit van de standaard futex() systeemaanroep in de Linux-kernel met de mogelijkheden die nodig zijn voor optimale synchronisatie van de threadpool. Er zijn al patches met ondersteuning voor de vlag FUTEX_WAIT_MULTIPLE die nodig zijn voor Proton overgedragen voor opname in de belangrijkste Linux-kernel en glibc. De voorbereide wijzigingen zijn nog niet opgenomen in de hoofdkernel, dus op dit moment is het noodzakelijk vestigen een speciale kernel met ondersteuning voor deze primitieven;

    Valve brengt Proton 4.11 uit, een suite voor het uitvoeren van Windows-games op Linux

  • Tussenlaag DXVK-extensie (implementatie van DXGI, Direct3D 10 en Direct3D 11 bovenop de Vulkan API) bijgewerkt naar versie 1.3En D9VK (een experimentele implementatie van Direct3D 9 bovenop Vulkan) tot versie 0.13f. Om D9VK-ondersteuning in Proton in te schakelen, gebruikt u de PROTON_USE_D9VK-vlag;
  • De huidige vernieuwingsfrequentie van de monitor wordt naar games verzonden;
  • Er zijn oplossingen aangebracht voor het omgaan met muisfocus en vensterbeheer;
  • Vaste invoervertraging en problemen met trillingsondersteuning voor joysticks die in sommige games optreden, vooral in games gebaseerd op de Unity-engine;
  • Ondersteuning toegevoegd voor de nieuwste versie van OpenVR SDK;
  • FAudio-componenten met implementatie van DirectX-geluidsbibliotheken (API XAudio2, X3DAudio, XAPO en XACT3) zijn bijgewerkt naar release 19.07;
  • Problemen met het netwerksubsysteem in games op GameMaker zijn opgelost;
  • Veel Wine-modules zijn nu gebouwd als Windows PE-bestanden in plaats van Linux-bibliotheken. Naarmate het werk op dit gebied vordert, zal het gebruik van PE sommige DRM- en anti-cheatsystemen helpen. Als u aangepaste Proton-builds gebruikt, moet u hoogstwaarschijnlijk de virtuele Vagrant-machine opnieuw maken om de PE-bestanden te bouwen.

Voordat de patches van Valve in de belangrijkste Linux-kernel worden opgenomen, vereist het gebruik van futex() in plaats van esync de installatie van een speciale kernel met ondersteuning voor de threadsynchronisatiepool die in een reeks patches is geïmplementeerd fsync. Voor Arch Linux in AUR al gepubliceerde kant-en-klaar kernelpakket gecompileerd met fsync-patches. Op Ubuntu 18.04 en 19.04 kun je de experimentele kernel PPA van linux-mfutex-valve gebruiken (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Als je een kernel hebt met fsync-ondersteuning, zal de console, wanneer je Proton 4.11 draait, het bericht “fsync: up and running” weergeven. U kunt forceren dat fsync wordt uitgeschakeld met de vlag PROTON_NO_FSYNC=1.

Bron: opennet.ru

Voeg een reactie