Valve vydáva Proton 4.11, balík na spúšťanie hier pre Windows na Linuxe

Spoločnosť Valve опубликовала nová vetva projektu Protón 4.11, založený na vývoji projektu Wine a zameraný na zabezpečenie spustenia herných aplikácií vytvorených pre Windows a prezentovaných v katalógu Steam pre Linux. Vývoj projektu šírenie pod licenciou BSD. Keď sú pripravené, zmeny vyvinuté v Protone sa prenesú do pôvodného Wine a súvisiacich projektov, ako sú DXVK a vkd3d.

Proton vám umožňuje priamo spúšťať herné aplikácie iba pre Windows v klientovi Steam Linux. Balík obsahuje implementáciu DirectX 10/11 (na základe DXVK) a 12 (na základe vkd3d), pracujúci prostredníctvom prekladu volaní DirectX do Vulkan API, poskytuje vylepšenú podporu pre herné ovládače a možnosť používať režim celej obrazovky bez ohľadu na rozlíšenie obrazovky podporované v hrách. V porovnaní s pôvodným Wine sa vďaka použitiu záplat výrazne zvýšil výkon viacvláknových hier "esync"(Synchronizácia Eventfd) alebo "futex/fsync".

Hlavné zmeny v Protone 4.11:

  • Prebehla synchronizácia s kódovou základňou Wine 4.11, z ktorej bolo prenesených viac ako 3300 zmien (predchádzajúca vetva bola založená na víne 4.2). 154 záplat z Protonu 4.2 bolo presunutých proti prúdu a sú teraz zahrnuté v hlavnom balíku Wine;
  • Pridaná experimentálna podpora synchronizačných primitív založených na systémovom volaní futex(), čo znižuje zaťaženie CPU v porovnaní s esync. Nová implementácia navyše rieši problémy s nutnosťou používania špeciálne nastavenia pre synchronizáciu a prípadné vyčerpanie dostupných deskriptorov súborov.

    Podstatou vykonávanej práce je rozšírenie funkčnosti štandardného systémového volania futex() v jadre Linuxu o schopnosti potrebné na optimálnu synchronizáciu oblasti vlákien. Záplaty s podporou pre príznak FUTEX_WAIT_MULTIPLE potrebné pre Proton sú už k dispozícii prenesené na zahrnutie do hlavného linuxového jadra a glibc. Pripravené zmeny ešte nie sú zahrnuté v hlavnom jadre, takže momentálne sú potrebné vytvoriť špeciálne jadro s podporou pre tieto primitívy;

    Valve vydáva Proton 4.11, balík na spúšťanie hier pre Windows na Linuxe

  • Medzivrstva DXVK (implementácia DXGI, Direct3D 10 a Direct3D 11 nad rozhraním Vulkan API) aktualizované na verziu 1.3A D9VK (experimentálna implementácia Direct3D 9 nad Vulkanom) až po verziu 0.13f. Ak chcete povoliť podporu D9VK v Protone, použite príznak PROTON_USE_D9VK;
  • Aktuálna obnovovacia frekvencia monitora sa prenáša do hier;
  • Boli urobené opravy, aby zvládli zameranie myši a správu okien;
  • Opravené oneskorenie vstupu a problémy s podporou vibrácií pre joysticky, ktoré sa vyskytujú v niektorých hrách, najmä v hrách založených na engine Unity;
  • Pridaná podpora pre najnovšiu verziu OpenVR SDK;
  • Komponenty FAudio s implementáciou zvukových knižníc DirectX (API XAudio2, X3DAudio, XAPO a XACT3) boli aktualizované na vydanie 19.07;
  • Problémy so sieťovým podsystémom v hrách na GameMaker boli vyriešené;
  • Mnoho modulov Wine je teraz vytvorených ako súbory Windows PE namiesto linuxových knižníc. Ako práca v tejto oblasti postupuje, používanie PE pomôže niektorým systémom DRM a anti-cheat. Ak používate vlastné zostavy Protonu, s najväčšou pravdepodobnosťou budete musieť znova vytvoriť virtuálny počítač Vagrant, aby ste vytvorili súbory PE.

Pred prijatím záplat Valve do hlavného linuxového jadra si použitie futex() namiesto esync vyžaduje inštaláciu špeciálneho jadra s podporou pre synchronizačný fond vlákien implementovaný v sade záplat. fsync. Pre Arch Linux už v AUR zverejnená hotový balík jadra skompilovaný s fsync patchmi. Na Ubuntu 18.04 a 19.04 môžete použiť experimentálne jadro linux-mfutex-valve PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Ak máte jadro s podporou fsync, keď spustíte Proton 4.11, konzola zobrazí správu „fsync: up and running“. Vypnutie fsync môžete vynútiť pomocou príznaku PROTON_NO_FSYNC=1.

Zdroj: opennet.ru

Pridať komentár