Kompania Valve një degë të re të projektit , e bazuar në zhvillimet e projektit Wine dhe me fokus në sigurimin e lançimit të aplikacioneve lojërash në Linux, të krijuara për Windows dhe të paraqitura në katalogun Steam. Zhvillimet e projektit janë nën licencën BSD. Ndërsa përgatiten, ndryshimet e zhvilluara në Proton transferohen në Wine origjinal dhe projektet e lidhura, si DXVK dhe vkd3d.
Proton lejon qĂ« aplikacionet lojĂ«rash, tĂ« cilat ofrohen vetĂ«m pĂ«r Windows, tĂ« lancohen drejtpĂ«rdrejt nĂ« klientin Linux tĂ« Steam. Paketa pĂ«rfshin zbatimin e DirectX 10/11 (nĂ« bazĂ« tĂ« ) dhe 12 (nĂ« bazĂ« tĂ« ), duke punuar pĂ«rmes pĂ«rkthimit tĂ« thirrjeve DirectX nĂ« API Vulkan, ofron mbĂ«shtetje tĂ« pĂ«rmirĂ«suar pĂ«r kontrolluesit e lojĂ«rave dhe mundĂ«sinĂ« e pĂ«rdorimit tĂ« modalitetit tĂ« plotĂ« nĂ« mĂ«nyrĂ« tĂ« pavarur nga rezolutat e ekranit qĂ« mbĂ«shteten nĂ« lojĂ«ra. Krahasuar me Wine origjinal, performanca e lojĂ«rave multi-thread Ă«shtĂ« rritur ndjeshĂ«m falĂ« pĂ«rdorimit tĂ« patcheve ââ (Eventfd Synchronization) ose âfutex/fsyncâ.
Ndryshimet kryesore :
- Synchronizimi është përfunduar me bazën e kodit Wine 4.11, nga e cila janë transferuar më shumë se 3300 ndryshime (dega e kaluar mbështetej në wine 4.2). 154 patch-e nga Proton 4.2 janë transferuar upstream dhe tani janë përfshirë në përbërjen kryesore të Wine;
- ĂshtĂ« shtuar mbĂ«shtetje eksperimentale pĂ«r primitive sinkronizimi mbi thirrjen sistemike futex(), e cila lejon uljen e ngarkesĂ«s nĂ« CPU krahasuar me esync. PĂ«r mĂ« tepĂ«r, zbatimi i ri zgjidh problemet me nevojĂ«n pĂ«r tĂ« pĂ«rdorur pĂ«r esync dhe mundĂ«sinĂ« e shterimit tĂ« descriptorĂ«ve tĂ« skedarĂ«ve tĂ« disponueshĂ«m.
Qëllimi i punës që po bëhet është zgjerimi i funksionalitetit të thirrjes sistemike futex() në bërthamën Linux me mundësitë e nevojshme për sinkronizimin optimal të pool-it të proceseve. Patch-e me mbështetje për Proton për flagun FUTEX_WAIT_MULTIPLE janë tashmë për t'u përfshirë në përbërjen kryesore të bërthamës Linux dhe . Ndryshimet e përgatitura ende nuk janë përfshirë në përbërjen kryesore të bërthamës, kështu që aktualisht është e nevojshme një bërthamë speciale me mbështetje për këto primitive;
- Shtresa (implementimi i DXGI, Direct3D 10 dhe Direct3D 11 mbi API Vulkan) është azhurnuar në versionin , dhe (implementim eksperimental i Direct3D 9 mbi Vulkan) deri në versionin 0.13f. Për të aktivizuar mbështetje D9VK në Proton, duhet të përdorni flagun PROTON_USE_D9VK;
- I garantuar transmetimi i frekuencës aktuale të rifreskimit të monitorit në lojëra;
- Korrigjime të bëra lidhur me trajtimin e fokusit të kursorit të miut dhe menaxhimin e dritareve;
- Eliminimi i vonesave të hyrjes dhe problemeve me mbështetje qëndruese për kontrollet, të cilat shfaqen në disa lojëra, veçanërisht në lojëra që përdorin motorin Unity;
- Shtuar mbështetje për versionin më të fundit të OpenVR SDK;
- Komponentët FAudio me implementimin e bibliotekave të zërit DirectX (API XAudio2, X3DAudio, XAPO dhe XACT3) janë përditësuar në versionin 19.07;
- Zgjidhur probleme me nënstrukturën rrjetore në lojëra që përdorin GameMaker;
- Shumë module Wine tani ndërtohen si skedarë Windows PE, në vend të bibliotekave Linux. Ndërsa puna përparon në këtë drejtim, përdorimi i PE do të ndihmojë disa sisteme DRM dhe anti-cheat. Në rastin e ndërtimeve të personalizuara të Proton, do të jetë e nevojshme për të rikrijuar makinën virtuale Vagrant për të ndërtuar skedarët PE.
Para të pranohet në bërthama kryesore të Linux-it patch-et e kompanisë Valve për përdorimin e futex() në vend të esync, është e nevojshme të instalohet një bërthamë speciale me mbështetje për grupin e sinkronizimit të thread-eve, i zbatuar në setin e patch-eve. . Për Arch Linux në AUR tashmë një paketë e gatshme bërthamë, e ndërtuar me patch-e fsync. Në Ubuntu 18.04 dhe 19.04 mund të përdoret repository PPA me bërthama eksperimentale linux-mfutex-valve (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);
Kur ka një bërthamë me mbështetje për fsync, kur aktivizohet Proton 4.11 në konsolë do të shfaqet mesazhi «fsync: up and running». Mund të detyrohet çaktivizimi i fsync duke përdorur flagun PROTON_NO_FSYNC=1.
Burimi: opennet.ru
