Firma Valve uus projekti haru , mis pÔhineb Wine projekti saavutustel ja mille eesmÀrk on kÀivitada Linuxis Windowsis loodud ja Steam'i kataloogis esitatud mÀngurakendusi. Projekti saavutused BSD litsentsi all. Ooriginaalsesse Wine'i ja lÀhteprojektidesse, nagu DXVK ja vkd3d, kantakse Protonis arendatud muudatused.
Proton vĂ”imaldab otse kĂ€ivitada Linuxi Steam'i kliendis ainult Windowsile pakutavaid mĂ€ngurakendusi. Pakett sisaldab DirectX 10/11 rakendust (pĂ”hineb ) ja 12 (pĂ”hineb ), mis töötavad lĂ€bi DirectX kutsungite ĂŒlekandmise API Vulkanisse, pakkudes tĂ”hustatud toimet mĂ€ngukontrollerite jaoks ja vĂ”imalust kasutada tĂ€isekraani reĆŸiimi sĂ”ltumata mĂ€ngudes toetatud ekraani eraldusvĂ”imetest. Originaalse Wine'iga vĂ”rreldes on mitme lĂ”imega mĂ€ngude jĂ”udlus mĂ€rgatavalt paranenud tĂ€nu â» (Eventfd Synchronization) vĂ”i «futex/fsync».
Peamised :
- Tehtud sĂŒnkroniseerimine Wine 4.11 koodibaasi, millest on vĂ”etud ĂŒle ĂŒle 3300 muudatuse (eelmine haru pĂ”hines wine 4.2-l). 154 plaastrit Proton 4.2-st on kantud upstream ja nĂŒĂŒd kuuluvad need peamisse Wine'i komplekti;
- Lisatud katse toetamine sĂŒnkroniseerimise primitiivide kohta, mis pĂ”hinevad sĂŒsteemi kĂ”nul futex(), mis vĂ”imaldab vĂ€hendada CPU koormust vĂ”rreldes esynciga. Samuti lahendab uus teostus probleeme, mis tulenevad esyncile ja vĂ”imaliku failide descriptor'ite ammendamise kohta.
Tehtud töö sisuks on laiendada Linuxi ydre futex() sĂŒsteemi kĂ”ne funktsionaalsust funktsioonidega, mis on vajalikud puudevoogude optimaalseks sĂŒnkroniseerimiseks. Plaastrid, mis toetavad Protonit FUTEX_WAIT_MULTIPLE lippu, on saanud Linuxi ydre peamisse koostisse ja . Valmistatud muudatused pole veel peamisse koostisse lisatud, seetĂ”ttu on praegu vajalik eriline ydre, mis toetab neid primitiive;
- Kiht (DXGI, Direct3D 10 ja Direct3D 11 rakendamine API Vulkanil) uuendatud versioonini , vaid (katse Direct3D 9 rakendamine Vulkanil) versioonini 0.13f. D9VK toe lisamiseks Protonis tuleks kasutada PROTON_USE_D9VK lippu;
- MÀngudele on tagatud praeguse monitori vÀrskendussageduse edastamine;
- Parandatud hiiremÀrgise fookuse ja aknahaldusega seotud probleeme;
- Eemaldatud sisendi viivitused ja vibratsiooni toega seotud probleemid mÀngude jaoks, mis ilmnevad mÔnedes mÀngudes, eriti Unity mÀngu mootori mÀngudes;
- Lisa uusim OpenVR SDK tugi;
- FAudio komponendid, mis rakendavad DirectX heli raamatukogusid (API XAudio2, X3DAudio, XAPO ja XACT3), on uuendatud versioonile 19.07;
- Lahendatud probleemid GameMaker mĂ€ngude vĂ”rgu alamsĂŒsteemis;
- Paljud Wine'i moodulid kompileeritakse nĂŒĂŒd kui Windows PE-failid, mitte Linuxi raamatukogud. Selle valdkonna töö edenedes aitab PE kasutamine mĂ”nes DRM ja anticheat sĂŒsteemis. Kui kasutate isiklikult koostatud Protonit, peate tĂ”enĂ€oliselt Vagranti virtuaalmasina uuesti looma, et PE-faile koostada.
Enne Linux-i peajuurde nende Valve'i patĆĄide vastuvĂ”tmist, et kasutada futex() asemel esync'i, tuleb koos spetsiaalse tuumaga installida ka lĂ”ime sĂŒnkroniseerimise basseini toetav patĆĄide kogum. . Arch Linuxi jaoks on AUR-is juba saadaval valmis tuuma paket, mis on koostatud fsync'i patĆĄide abil. Ubuntu 18.04 ja 19.04 puhul vĂ”ib kasutada PPA-repositooriumi katsetavate linux-mfutex-valve tuumade jaoks (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);
Kui tuumal on fsync'i tugi, kuvatakse Proton 4.11 kĂ€ivitamisel konsoolis teadet "fsync: up and running". Fsync'i vĂ”ib sundida vĂ€lja lĂŒlitama, kasutades lippu PROTON_NO_FSYNC=1.
Allikas: opennet.ru
