Valve izda Proton 4.11, zbirko za izvajanje iger Windows v Linuxu

Podjetje Valve objavljeno nova veja projekta Proton 4.11, ki temelji na razvoju projekta Wine in je namenjen zagotavljanju lansiranja igralnih aplikacij, ustvarjenih za Windows in predstavljenih v katalogu Steam na Linuxu. Razvoj projekta širjenje pod licenco BSD. Ko so pripravljene, se spremembe, razvite v Protonu, prenesejo v izvirni Wine in sorodne projekte, kot sta DXVK in vkd3d.

Proton vam omogoča neposreden zagon igralnih aplikacij samo za Windows v odjemalcu Steam Linux. Paket vključuje implementacijo DirectX 10/11 (temelji na DXVK) in 12 (na podlagi vkd3d), ki deluje prek prevajanja klicev DirectX v API Vulkan, zagotavlja izboljšano podporo za krmilnike iger in možnost uporabe celozaslonskega načina ne glede na ločljivosti zaslona, ​​ki so podprte v igrah. V primerjavi z izvirnim Wineom je bila zmogljivost večnitnih iger znatno povečana zahvaljujoč uporabi popravkov "esync"(Sinhronizacija Eventfd) ali "futex/fsync".

Glavni spremembe v Protonu 4.11:

  • Izvedena je bila sinhronizacija s kodno bazo Wine 4.11, iz katere je bilo prenesenih več kot 3300 sprememb (prejšnja veja je temeljila na vinu 4.2). 154 popravkov iz Protona 4.2 je bilo premaknjenih navzgor in so zdaj vključeni v glavni paket Wine;
  • Dodana eksperimentalna podpora za sinhronizacijske primitive, ki temeljijo na sistemskem klicu futex(), kar zmanjša obremenitev CPU v primerjavi z esync. Poleg tega nova izvedba rešuje težave s potrebo po uporabi posebne nastavitve za esync in morebitno izčrpanost razpoložljivih deskriptorjev datotek.

    Bistvo opravljenega dela je razširitev funkcionalnosti standardnega sistemskega klica futex() v jedru Linuxa z zmogljivostmi, potrebnimi za optimalno sinhronizacijo skupine niti. Popravki s podporo za zastavo FUTEX_WAIT_MULTIPLE, potrebni za Proton, so že na voljo preneseno za vključitev v glavno jedro Linuxa in glibc. Pripravljene spremembe še niso vključene v glavno jedro, zato so trenutno nujne vzpostaviti posebno jedro s podporo za te primitive;

    Valve izda Proton 4.11, zbirko za izvajanje iger Windows v Linuxu

  • Vmesni sloj DXVK (implementacija DXGI, Direct3D 10 in Direct3D 11 na vrhu API-ja Vulkan) posodobljena na različico 1.3In D9VK (eksperimentalna izvedba Direct3D 9 na vrhu Vulkana) do različice 0.13f. Če želite omogočiti podporo za D9VK v Protonu, uporabite zastavico PROTON_USE_D9VK;
  • Trenutna hitrost osveževanja monitorja se prenaša v igre;
  • Izvedeni so bili popravki za upravljanje fokusa miške in upravljanja oken;
  • Popravljen zamik vnosa in težave s podporo za vibriranje za igralne palice, ki se pojavljajo v nekaterih igrah, zlasti v igrah, ki temeljijo na motorju Unity;
  • Dodana podpora za najnovejšo različico OpenVR SDK;
  • Komponente FAudio z implementacijo zvočnih knjižnic DirectX (API XAudio2, X3DAudio, XAPO in XACT3) so bile posodobljene na izdajo 19.07;
  • Težave z omrežnim podsistemom v igrah na GameMaker so bile odpravljene;
  • Številni moduli Wine so zdaj zgrajeni kot datoteke Windows PE namesto knjižnic Linuxa. Ko delo na tem področju napreduje, bo uporaba PE pomagala nekaterim DRM in sistemom proti goljufanju. Če uporabljate gradnje Proton po meri, boste najverjetneje morali znova ustvariti virtualni stroj Vagrant za izdelavo datotek PE.

Preden so popravki Valve sprejeti v glavno jedro Linuxa, je za uporabo funkcije futex() namesto esync potrebna namestitev posebnega jedra s podporo za sinhronizacijsko skupino niti, implementirano v nizu popravkov fsync. Za Arch Linux že v AUR objavljeno že pripravljen paket jedra, preveden s popravki fsync. V Ubuntu 18.04 in 19.04 lahko uporabite eksperimentalno jedro linux-mfutex-valve PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Če imate jedro s podporo za fsync, ko zaženete Proton 4.11, bo konzola prikazala sporočilo "fsync: gor in teče". Fsync lahko prisilite, da se izklopi z uporabo zastavice PROTON_NO_FSYNC=1.

Vir: opennet.ru

Dodaj komentar