Spoločnosť Valve nová vetva projektu , založený na vývoji projektu Wine a zameraný na zabezpečenie spustenia v Linux herné aplikácie vytvorené pre Windows a prezentované v katalógu Steam. Vývoj projektu 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.
Protón vám umožňuje priamy štart Linux-Herné aplikácie Steam klienta dodávané iba pre WindowsBalík obsahuje implementáciu DirectX 10/11 (založenú na ) a 12 (na základe ), 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 ""(Synchronizácia Eventfd) alebo "futex/fsync".
Hlavné :
- 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 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. Linux možnosti potrebné pre optimálnu synchronizáciu fondu vlákien. Záplaty s potrebnou podporou príznaku FUTEX_WAIT_MULTIPLE pre Proton sú už k dispozícii. na zaradenie do hlavného zloženia jadra Linux и . Pripravené zmeny ešte nie sú zahrnuté v hlavnom jadre, takže momentálne sú potrebné špeciálne jadro s podporou pre tieto primitívy;
- Medzivrstva (implementácia DXGI, Direct3D 10 a Direct3D 11 nad rozhraním Vulkan API) aktualizované na verziu A (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 zostavených ako Windows PE súbory namiesto toho Linux-knižnice. S postupom práce v tejto oblasti bude používanie PE užitočnejšie pre niektoré systémy DRM a softvér proti podvádzaniu. Ak používate vlastné zostavy Proton, pravdepodobne budete musieť znova vytvoriť virtuálny stroj Vagrant na zostavenie súborov PE.
Pred prijatím do hlavného jadra Linux Záplaty od Valve pre použitie futex() namiesto esync vyžadujú inštaláciu špeciálneho jadra s podporou pre synchronizačný pool vlákien, ktoré je implementované v sade záplat. Pre oblúk Linux už v AUR hotový balík jadra, skompilovaný s opravami fsync. Ubuntu V dňoch 18.04 a 19.04 môžete používať repozitár PPA s experimentálnymi jadrami linux-mfutex-valve (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
