Valve har udgivet Proton 4.11, et pakkesystem til at køre Windows-spil på Linux

Valve Company offentliggjorde et nyt projektlancering Proton 4.11, baseret på erfaringerne fra Wine-projektet og sigter mod at muliggøre kørsel af spilkjerne udviklet til Windows i Linux-klienten Steam. Erfaringerne fra projektet distribueres er under BSD-licens. Efterhånden som de oprindelige ændringer i Wine og tilknyttede projekter, såsom DXVK og vkd3d, bliver klar, overføres de udviklede ændringer fra Proton.

Proton gør det muligt at køre gaming-apps direkte i Linux-klienten Steam, som kun er tilgængelige for Windows. Pakken inkluderer implementeringen af DirectX 10/11 (baseret på DXVK) og 12 (baseret på vkd3d), der arbejder ved at konvertere DirectX-kald til Vulkan API, tilbyder forbedret controller-understøttelse og mulighed for at bruge fuldskærm uafhængigt af de understøttede skærmopløsninger i spillene. Sammenlignet med det oprindelige Wine er ydelsen i flertrådede spil betydeligt forbedret takket være indførelsen af patches "esync" (Eventfd Synchronization) eller "futex/fsync".

Vigtige ændringer i Proton 4.11:

  • Koden er blevet synkroniseret med Wine 4.11-kodebasen, hvor mere end 3300 ændringer er blevet overført (den tidligere gren var baseret på wine 4.2). 154 patches fra Proton 4.2 er blevet sendt upstream og er nu inkluderet i hovedversionen af Wine;
  • Eksperimentel understøttelse af synkroniseringsprimitive baseret på systemopkaldet futex() er blevet tilføjet, hvilket reducerer CPU-belastningen sammenlignet med esync. Desuden løser den nye implementering problemerne med behovet for at bruge specielle indstillinger for esync og mulig udtømning af tilgængelige filbeskrivere.

    Hovedformålet med arbejdet er at udvide funktionaliteten af det native systemopkald futex() i Linux-kernen med de funktioner, der er nødvendige for optimal synkronisering af tråd-poolen. Patches, der er nødvendige for Proton-støtte til FUTEX_WAIT_MULTIPLE-flaget, er allerede blevet sendt til inkludering i hovedkernen, Glibc. De forberedte ændringer er endnu ikke inkluderet i hovedkernen, derfor er det i øjeblikket nødvendigt at installere en specialkerne med understøttelse af disse primitive;

    Valve har udgivet Proton 4.11, et pakkesystem til at køre Windows-spil på Linux
  • Lag DXVK (implementeringen af DXGI, Direct3D 10 og Direct3D 11 oven på Vulkan API) er blevet opdateret til version 1.3, og D9VK (eksperimentel implementering af Direct3D 9 oven på Vulkan) til version 0.13f. For at aktivere D9VK-understøttelse i Proton skal flaget PROTON_USE_D9VK bruges;
  • Overførslen af den aktuelle opdateringsfrekvens fra skærmen til spillene er sikret;
  • Der er foretaget rettelser relateret til musemarkørens fokusbehandling og vindueshåndtering;
  • Inputforsinkelser og vibrationsproblemer for controllere, der opstår i nogle spil, især dem, der bruger Unity-motoren, er løst;
  • Understøttelse af den nyeste version af OpenVR SDK er tilføjet;
  • FAudio-komponenterne med implementeringen af DirectX-lydbiblioteker (API XAudio2, X3DAudio, XAPO og XACT3) er opdateret til version 19.07;
  • Problemer med det netværkssubsystem i spil på GameMaker er løst;
  • Mange Wine-moduler kompileres nu som Windows PE-filer i stedet for Linux-biblioteker. I takt med at arbejdet skrider frem, vil brugen af PE hjælpe nogle DRM-systemer og anti-snyd. Hvis man bruger brugerdefinerede Proton-builds, vil det sandsynligvis være nødvendigt at genskabe Vagrant-virtualmaskinen for at kompilere PE-filer.

Inden Valve-patches anvendes til hovedkernen af Linux for at bruge futex() i stedet for esync, skal der installeres en særlig kerne med understøttelse af synkroniseringstrådepuljer, som er implementeret i patchsettet; fsync. For Arch Linux er der allerede en udgivet tilgængelig pakke med kernen, der er bygget med fsync- patches. I Ubuntu 18.04 og 19.04 kan man bruge PPA-repositoriet med eksperimentelle linux-mfutex-valve-kerner (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Når man kører Proton 4.11 med en kerne, der understøtter fsync, vises meddelelsen «fsync: up and running» i konsollen. Fsync kan tvinges til at være slået fra ved at bruge flaget PROTON_NO_FSYNC=1.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster