Valve släpper Proton 4.11, en svit för att köra Windows-spel på Linux

Ventilföretag опубликовала ny projektgren Proton 4.11, baserat på utvecklingen av Wine-projektet och som syftar till att säkerställa lanseringen av spelapplikationer skapade för Windows och presenterade i Steam-katalogen på Linux. Projektutveckling sprida under BSD-licens. När de är klara överförs ändringarna som utvecklats i Proton till det ursprungliga Wine och relaterade projekt, såsom DXVK och vkd3d.

Proton låter dig köra spelapplikationer endast för Windows direkt i Steam Linux-klienten. Paketet innehåller en implementering av DirectX 10/11 (baserat på DXVK) och 12 (baserat på vkd3d), som arbetar via översättning av DirectX-anrop till Vulkan API, ger förbättrat stöd för spelkontroller och möjligheten att använda helskärmsläge oavsett vilka skärmupplösningar som stöds i spel. Jämfört med originalet Wine har prestandan för flertrådade spel ökat avsevärt tack vare användningen av patchar "esync"(Eventfd Synchronization) eller "futex/fsync".

Den huvudsakliga ändringar i Proton 4.11:

  • Synkronisering med Wine 4.11-kodbasen genomfördes, från vilken mer än 3300 ändringar överfördes (den tidigare grenen baserades på vin 4.2). 154 patchar från Proton 4.2 har flyttats uppströms och ingår nu i huvudpaketet Wine;
  • Lade till experimentellt stöd för synkroniseringsprimitiver baserat på futex()-systemanropet, vilket minskar CPU-belastningen jämfört med esync. Dessutom löser den nya implementeringen problem med behov av att använda speciella inställningar för esync och möjlig uttömning av tillgängliga filbeskrivningar.

    Kärnan i arbetet som görs är att utöka funktionaliteten hos standardanropet futex()-system i Linux-kärnan med de möjligheter som krävs för optimal synkronisering av trådpoolen. Patchar med stöd för FUTEX_WAIT_MULTIPLE-flaggan som krävs för Proton finns redan överförd för inkludering i Linux-huvudkärnan och glibc. De förberedda ändringarna är ännu inte inkluderade i huvudkärnan, så för tillfället är det nödvändigt upprätta en speciell kärna med stöd för dessa primitiver;

    Valve släpper Proton 4.11, en svit för att köra Windows-spel på Linux

  • Mellanskikt DXVK (implementering av DXGI, Direct3D 10 och Direct3D 11 ovanpå Vulkan API) uppdaterad till version 1.3Och D9VK (en experimentell implementering av Direct3D 9 ovanpå Vulkan) upp till version 0.13f. För att aktivera D9VK-stöd i Proton, använd PROTON_USE_D9VK-flaggan;
  • Den aktuella bildskärmens uppdateringsfrekvens överförs till spel;
  • Fixningar har gjorts för att hantera musfokus och fönsterhantering;
  • Fast ingångsfördröjning och problem med vibrationsstöd för joysticks som förekommer i vissa spel, speciellt i spel baserade på Unity-motorn;
  • Lade till stöd för den senaste versionen av OpenVR SDK;
  • FAudio-komponenter med implementering av DirectX-ljudbibliotek (API XAudio2, X3DAudio, XAPO och XACT3) har uppdaterats till release 19.07;
  • Problem med nätverksundersystemet i spel på GameMaker har lösts;
  • Många vinmoduler är nu byggda som Windows PE-filer istället för Linux-bibliotek. Allt eftersom arbetet fortskrider på detta område kommer användningen av PE att hjälpa vissa DRM- och anti-fusksystem. Om du använder anpassade Proton-byggen kommer du troligen att behöva återskapa den virtuella Vagrant-maskinen för att bygga PE-filerna.

Innan Valves patchar införlivas i Linux-huvudkärnan, kräver användning av futex() istället för esync installation av en speciell kärna med stöd för trådsynkroniseringspoolen implementerad i en uppsättning patchar fsync. För Arch Linux redan i AUR publicerad färdigt kärnpaket kompilerat med fsync-patchar. På Ubuntu 18.04 och 19.04 kan du använda den experimentella kärnan PPA för linux-mfutex-valve (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Om du har en kärna med fsync-stöd, när du kör Proton 4.11, kommer konsolen att visa meddelandet "fsync: up and running". Du kan tvinga fsync att stängas av med flaggan PROTON_NO_FSYNC=1.

Källa: opennet.ru

Lägg en kommentar