Valve Corporation uue projekti haru , mis pÔhineb projekti Wine arengutel ja mille eesmÀrk on vÔimaldada Linuxis kÀivitada Windowsile loodud mÀngurakendusi, mis on saadaval Steamis. Projekti arengud BSD litsentsi alusel. Valmimise kÀigus kantakse originaalsesse Wine'i ja seotud projektidesse, nagu DXVK ja vkd3d, edasi Protonis arendatud muudatused.
Proton vĂ”imaldab otse Linuxi Steam kliendis kĂ€ivitada ainult Windowsile mĂ”eldud mĂ€ngurakendusi. Pakett sisaldab DirectX 10/11 rakendust (pĂ”hinev ) ja 12 (pĂ”hinev ), mis töötab DirectX-i kĂ”nede tĂ”lkimise kaudu Vulkan API-dele, pakkudes paremat mĂ€ngukontrollerite tuge ja vĂ”imalust kasutada tĂ€isekraanireĆŸiimi sĂ”ltumatult mĂ€ngus toetatavatest ekraani eraldusvĂ”imetest. Originaalsest Wine'ist on oluliselt paranenud mitme lĂ”imega mĂ€ngude jĂ”udlus tĂ€nu ââ (Eventfd Synchronization) vĂ”i âfutex/fsyncâ muudatustele.
Peamised :
- SĂŒnkroonitud on kodibaasi Wine 4.11, kust on ĂŒle viidud rohkem kui 3300 muudatust (eelmine haru pĂ”hines Wine 4.2-l). 154 patĆĄi Proton 4.2-st on viidud upstream ja nĂŒĂŒd kuuluvad need pĂ”hikoosseisu Wine;
- Lisatud on eksperimentaalne tugi sĂŒsteemi kutse futex() pĂ”hinevatele sĂŒnkroonimisprimitivoille, mis vĂ€hendab CPU koormust vĂ”rreldes esynciga. Lisaks lahendab uus rakendusprobleeme, mis on seotud esynci ja vĂ”imaliku saadaval olevate failide deskriptorite ammendumisega.
Tegevuse eesmĂ€rk on laiendada Linuxi tuuma tavapĂ€rase sĂŒsteemi kutse futex() funktsionaalsust vajalike omadustega, mis on vajalikud optimaalsele niidistamisele. PatĆĄid, mis on vajalikud Protoni FUTEX_WAIT_MULTIPLE lippu toetamiseks, on juba informeeritud peamise Linuxi tuuma koosseisu ja . Valmistatud muudatused pole veel peamisse tuuma koosseisu lisatud, seega on praegu hĂ€davajalik eriline tuum, mis toetab neid primitiive;
- LĂ€biviijaim (DXGI, Direct3D 10 ja Direct3D 11 rakendamine Vulkan API peal) on uuendatud versiooniks , ja (eksperimentaalne rakendus Direct3D 9 ĂŒle Vulkan) kuni versioonini 0.13f. D9VK toe aktiveerimiseks Protonis tuleb kasutada lippu PROTON_USE_D9VK;
- Tagatud on mÀngudele praeguse monitori vÀrskendussageduse edastamine;
- Parandatud on hiirekursorite fookuse töötlemise ja akende juhtimisega seotud vead;
- Kaugjuhtimisseadmete sisendi viivitused ja vibratsiooni toe probleemid on kÔrvaldatud, mis ilmneb mÔnedes mÀngudes, eriti Unity mootoriga mÀngudes;
- Lisatud on tugi viimase versiooni OpenVR SDK jaoks;
- FAudio komponendid, mis rakendavad DirectX heli raamatukogusid (API XAudio2, X3DAudio, XAPO ja XACT3) on uuendatud versioonini 19.07;
- Lahendatud on probleemid GameMaker mĂ€ngude vĂ”rgusĂŒsteemiga;
- Paljud Wine moodulid koostatakse nĂŒĂŒd Windows PE-failidena, mitte Linuxi raamatukogudena. Selle valdkonna töö edenedes aitab PE kasutamine mĂ”nede DRM ja anticheat sĂŒsteemide korral. Kui kasutatakse isiklikult loodud Proton kogusid, on tĂ”enĂ€oliselt vajalik Vagrant virtuaalmasina uuesti loomine PE failide koostamiseks.
Enne Linuxi pĂ”hituuma vastuvĂ”tmist peab Valve'i ettevĂ”tte patĆĄide kasutamiseks futex() asemel esync installima spetsiaalse tuuma, mis toetab lĂ”imede sĂŒnkroniseerimise paiku, implementeritud patĆĄide komplektis. . Arch Linuxi AURis on juba valmis tuumapake, mis on kogutud fsync patĆĄidega. Ubuntu 18.04 ja 19.04 jaoks saab kasutada PPA-reposiiti eksperimenteerivate linux-mfutex-valve tuumade jaoks (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);
Kui tuum toetab fsync'i, kuvatakse Proton 4.11 kĂ€ivitamisel konsoolis sĂ”num «fsync: up and running». Fsync'i saab sundida vĂ€lja lĂŒlitama, kasutades lippu PROTON_NO_FSYNC=1.
Allikas: opennet.ru
