Valve slipper Proton 4.11, en suite for å kjøre Windows-spill på Linux

Valve Company опубликовала ny prosjektgren Proton 4.11, basert på utviklingen av Wine-prosjektet og rettet mot å sikre lanseringen av spillapplikasjoner laget for Windows og presentert i Steam-katalogen på Linux. Prosjektutvikling spre under BSD-lisens. Etter hvert som de er klare, overføres endringene utviklet i Proton til den originale Wine og relaterte prosjekter, som DXVK og vkd3d.

Proton lar deg kjøre Windows-bare spillapplikasjoner direkte i Steam Linux-klienten. Pakken inkluderer en implementering av DirectX 10/11 (basert på DXVK) og 12 (basert på vkd3d), som jobber via oversettelse av DirectX-kall til Vulkan API, gir forbedret støtte for spillkontrollere og muligheten til å bruke fullskjermmodus uavhengig av skjermoppløsningene som støttes i spill. Sammenlignet med den originale Wine, har ytelsen til multi-threaded spill blitt betydelig økt takket være bruken av patcher "esync"(Eventfd Synchronization) eller "futex/fsync".

Den viktigste endringer i Proton 4.11:

  • Synkronisering med Wine 4.11-kodebasen ble utført, hvorfra mer enn 3300 endringer ble overført (den forrige grenen var basert på vin 4.2). 154 patcher fra Proton 4.2 er flyttet oppstrøms og er nå inkludert i hovedpakken for vin;
  • Lagt til eksperimentell støtte for synkroniseringsprimitiver basert på futex() systemkallet, som reduserer CPU-belastningen sammenlignet med esync. I tillegg løser den nye implementeringen problemer med bruksbehov spesielle innstillinger for esynkronisering og mulig utmatting av tilgjengelige filbeskrivelser.

    Essensen av arbeidet som gjøres er å utvide funksjonaliteten til standard futex()-systemkallet i Linux-kjernen med egenskapene som er nødvendige for optimal synkronisering av trådpoolen. Patcher med støtte for FUTEX_WAIT_MULTIPLE-flagget som er nødvendig for Proton, finnes allerede overført for inkludering i hoved Linux-kjernen og glibc. De forberedte endringene er ennå ikke inkludert i hovedkjernen, så for øyeblikket er det nødvendig etablere en spesiell kjerne med støtte for disse primitivene;

    Valve slipper Proton 4.11, en suite for å kjøre Windows-spill på Linux

  • Mellomlag DXVK (implementering av DXGI, Direct3D 10 og Direct3D 11 på toppen av Vulkan API) oppdatert til versjon 1.3Og D9VK (en eksperimentell implementering av Direct3D 9 på toppen av Vulkan) opp til versjon 0.13f. For å aktivere D9VK-støtte i Proton, bruk PROTON_USE_D9VK-flagget;
  • Den gjeldende skjermens oppdateringsfrekvens overføres til spill;
  • Det er gjort rettelser for å håndtere musefokus og vindushåndtering;
  • Fast inndataforsinkelse og problemer med vibrasjonsstøtte for styrespaker som forekommer i noen spill, spesielt i spill basert på Unity-motoren;
  • Lagt til støtte for den nyeste versjonen av OpenVR SDK;
  • FAudio-komponenter med implementering av DirectX-lydbiblioteker (API XAudio2, X3DAudio, XAPO og XACT3) har blitt oppdatert til utgivelse 19.07;
  • Problemer med nettverksundersystemet i spill på GameMaker er løst;
  • Mange vinmoduler er nå bygget som Windows PE-filer i stedet for Linux-biblioteker. Etter hvert som arbeidet skrider frem på dette området, vil bruken av PE hjelpe noen DRM- og anti-juksesystemer. Hvis du bruker tilpassede Proton-bygg, vil du mest sannsynlig trenge å gjenskape den virtuelle Vagrant-maskinen for å bygge PE-filene.

Før Valves patcher tas i bruk i hoved Linux-kjernen, krever bruk av futex() i stedet for esync installasjon av en spesiell kjerne med støtte for trådsynkroniseringspoolen implementert i et sett med patcher fsync. For Arch Linux i AUR allerede publisert ferdiglaget kjernepakke kompilert med fsync-patcher. På Ubuntu 18.04 og 19.04 kan du bruke linux-mfutex-valve eksperimentelle kjerne PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Hvis du har en kjerne med fsync-støtte, når du kjører Proton 4.11, vil konsollen vise meldingen "fsync: up and running". Du kan tvinge fsync til å bli slått av ved å bruke PROTON_NO_FSYNC=1-flagget.

Kilde: opennet.ru

Legg til en kommentar