Valve izdaje Proton 4.11, paket za pokretanje Windows igara na Linuxu

Valve Company опубликовала nova grana projekta Proton 4.11, koji se temelji na razvoju projekta Wine i ima za cilj osigurati pokretanje aplikacija za igre stvorenih za Windows i predstavljenih u Steam katalogu na Linuxu. Razvoj projekta širenje pod BSD licencom. Kako su spremne, promjene razvijene u Protonu prenose se u originalni Wine i srodne projekte, kao što su DXVK i vkd3d.

Proton vam omogućuje izravno pokretanje aplikacija za igranje samo za Windows u Steam Linux klijentu. Paket uključuje implementaciju DirectX 10/11 (temeljenu na DXVK) i 12 (na temelju vkd3d), koji radi putem prijevoda DirectX poziva na Vulkan API, pruža poboljšanu podršku za kontrolere igara i mogućnost korištenja načina rada preko cijelog zaslona bez obzira na razlučivosti zaslona podržane u igrama. U usporedbi s originalnim Wineom, izvedba multi-threaded igara značajno je povećana zahvaljujući korištenju zakrpa "esync"(Sinkronizacija Eventfd) ili "futex/fsync".

Glavni promjene u Protonu 4.11:

  • Izvršena je sinkronizacija s Wine 4.11 kodnom bazom iz koje je preneseno više od 3300 promjena (prethodna grana bila je bazirana na wine 4.2). 154 zakrpe iz Protona 4.2 su premještene uzvodno i sada su uključene u glavni Wine paket;
  • Dodana je eksperimentalna podrška za primitive sinkronizacije temeljene na sistemskom pozivu futex(), što smanjuje opterećenje CPU-a u usporedbi s esync-om. Osim toga, nova implementacija rješava probleme s potrebom korištenja posebne postavke za esync i moguće iscrpljivanje dostupnih deskriptora datoteka.

    Bit posla koji se radi je proširiti funkcionalnost standardnog futex() sistemskog poziva u Linux kernelu s mogućnostima potrebnim za optimalnu sinkronizaciju skupa niti. Zakrpe s podrškom za oznaku FUTEX_WAIT_MULTIPLE potrebne za Proton već postoje prenijeti za uključivanje u glavnu jezgru Linuxa i glibc. Pripremljene promjene još nisu uključene u glavni kernel, tako da su trenutno neophodne uspostaviti posebna jezgra s podrškom za ove primitive;

    Valve izdaje Proton 4.11, paket za pokretanje Windows igara na Linuxu

  • Međusloj DXVK (implementacija DXGI, Direct3D 10 i Direct3D 11 povrh Vulkan API-ja) ažurirano na verziju 1.3I D9VK (eksperimentalna implementacija Direct3D 9 na vrhu Vulkana) do verzije 0.13f. Da biste omogućili podršku za D9VK u Protonu, koristite oznaku PROTON_USE_D9VK;
  • Trenutačna stopa osvježavanja monitora prenosi se na igre;
  • Napravljeni su popravci za rukovanje fokusom miša i upravljanje prozorima;
  • Riješeno kašnjenje unosa i problemi s podrškom za vibraciju za joysticke koji se javljaju u nekim igrama, posebno u igrama temeljenim na Unity motoru;
  • Dodana podrška za najnoviju verziju OpenVR SDK-a;
  • FAudio komponente s implementacijom DirectX zvučnih biblioteka (API XAudio2, X3DAudio, XAPO i XACT3) ažurirane su na izdanje 19.07;
  • Problemi s mrežnim podsustavom u igrama na GameMakeru su riješeni;
  • Mnogi Wine moduli sada su izgrađeni kao Windows PE datoteke umjesto Linux biblioteka. Kako rad na ovom području bude napredovao, korištenje PE će pomoći nekim DRM i anti-cheat sustavima. Ako koristite prilagođene nadogradnje Protona, najvjerojatnije ćete morati ponovno izraditi Vagrant virtualni stroj za izradu PE datoteka.

Prije nego što se Valveove zakrpe usvoje u glavnu jezgru Linuxa, korištenje futex() umjesto esync zahtijeva instaliranje posebne jezgre s podrškom za skup sinkronizacije niti implementiran u skupu zakrpa fsync. Za Arch Linux već u AUR-u objavljen gotovi paket kernela sastavljen s fsync zakrpama. Na Ubuntu 18.04 i 19.04 možete koristiti linux-mfutex-valve eksperimentalni kernel PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Ako imate kernel s podrškom za fsync, kada pokrenete Proton 4.11, konzola će prikazati poruku "fsync: gore i radi". Možete prisilno isključiti fsync pomoću oznake PROTON_NO_FSYNC=1.

Izvor: opennet.ru

Dodajte komentar