Valve Proton 4.11, komikek ji bo xebitandina lîstikên Windows-ê li ser Linux-ê belav dike

Şirketa Valve weşandin şaxê projeya nû Proton 4.11, li ser bingeha pêşkeftinên projeya Wine û bi mebesta misogerkirina destpêkirina serîlêdanên lîstikê yên ku ji bo Windows-ê hatine afirandin û di kataloga Steam-ê ya li Linux-ê de têne pêşkêş kirin. Pêşveçûnên projeyê belavbûn di bin lîsansa BSD de. Gava ku ew amade ne, guheztinên ku di Protonê de hatine pêşve xistin li Wine-ya orîjînal û projeyên têkildar, wek DXVK û vkd3d, têne veguheztin.

Proton destûrê dide te ku hûn rasterast serîlêdanên lîstikê yên Windows-ê di muwekîlê Steam Linux-ê de bimeşînin. Di pakêtê de pêkanîna DirectX 10/11 (li ser bingeha DXVK) û 12 (li ser bingeha vkd3d), bi wergerandina bangên DirectX-ê ji Vulkan API-yê re dixebite, ji bo kontrolkerên lîstikê piştgirî çêtir peyda dike û jêhatîbûna karanîna moda tev-ekran bêyî guheztinên ekranê yên ku di lîstikan de têne piştgirî kirin peyda dike. Li gorî şeraba orîjînal, performansa lîstikên pir-mijal bi saya karanîna paçeyan pir zêde bûye "esync"(Sinkronîzasyona Eventfd) an "futex/fsync".

sereke guhertinên di Proton 4.11:

  • Hevdengkirin bi bingeha koda Wine 4.11 re hate kirin, ku jê zêdetirî 3300 guhertin hatin veguheztin (şaxa berê li ser bingeha şerabê 4.2 bû). 154 paçên ji Proton 4.2 hatine veguheztin û naha di pakêta Wine ya sereke de cih digirin;
  • Piştgiriya ceribandinê ji bo primitives hevdemkirinê li ser bingeha banga pergala futex () zêde kir, ku li gorî esyncê barkirina CPU kêm dike. Digel vê yekê, pêkanîna nû pirsgirêkên bi hewcedariya karanîna çareser dike mîhengên taybet ji bo esync û westandina mimkun a ravekerên pelê yên berdest.

    Esasê xebata ku tê kirin ev e ku fonksiyona banga pergala standard futex() di kernel Linux-ê de bi kapasîteyên ku ji bo hevdengkirina çêtirîn a hewza Mijarê hewce ne berfireh bike. Paçên bi piştgiriya ala FUTEX_WAIT_MULTIPLE ya ku ji bo Protonê hewce ne, jixwe hene veguhestin ji bo tevlêbûna di kernel Linux ya sereke û glibc. Guhertinên amadekirî hîna di nav kernelê sereke de cih nagirin, ji ber vê yekê niha ew hewce ye damezrandin kernelek taybetî ya bi piştgiriya van primitives;

    Valve Proton 4.11, komikek ji bo xebitandina lîstikên Windows-ê li ser Linux-ê belav dike

  • Interlayer DXVK (pêkanîna DXGI, Direct3D 10 û Direct3D 11 li ser API-ya Vulkan) li guhertoyê hate nûve kirin 1.3û D9VK (pêkanîna ceribandinek Direct3D 9 li ser Vulkan) heya guhertoya 0.13f. Ji bo çalakkirina piştgiriya D9VK di Proton de, ala PROTON_USE_D9VK bikar bînin;
  • Rêjeya nûvekirina çavdêriya heyî ji lîstikan re tê veguheztin;
  • Ji bo birêvebirina baldariya mişk û rêveberiya pencereyê sererastkirin hatine çêkirin;
  • Derengiya têketinê û pirsgirêkên bi piştgiriya vibrasyonê ya ji bo joystikên ku di hin lîstikan de çêdibin, nemaze di lîstikên ku li ser motora Unity-yê têne çêkirin de têne rast kirin;
  • Piştgiriya ji bo guhertoya herî dawî ya OpenVR SDK zêde kir;
  • Pêkhateyên FAudio yên bi pêkanîna pirtûkxaneyên dengê DirectX (API XAudio2, X3DAudio, XAPO û XACT3) hatine nûve kirin ku 19.07-ê derxînin;
  • Pirsgirêkên binepergala torê di lîstikên li ser GameMaker de hatine çareser kirin;
  • Gelek modulên Wine li şûna pirtûkxaneyên Linux-ê naha wekî pelên Windows PE têne çêkirin. Her ku kar di vî warî de pêşve diçe, karanîna PE dê alîkariya hin pergalên DRM û dijî-xapandinê bike. Ger hûn avahiyên Protonê yên xwerû bikar bînin, bi îhtîmalek mezin hûn ê hewce bikin ku makîneya virtual ya Vagrant ji nû ve biafirînin da ku pelên PE ava bikin.

Berî ku paçeyên Valve di nav kernela sereke ya Linux-ê de werin pejirandin, karanîna futex() li şûna esync hewce dike ku kernelek taybetî ya bi piştgirîya hewza hevdemkirina mijarê ya ku di komek paçeyan de hatî bicîh kirin saz bike. fsync. Jixwe ji bo Arch Linux di AUR de weşandin pakêta kernelê ya amade ya ku bi paçên fsync ve hatî berhev kirin. Li ser Ubuntu 18.04 û 19.04, hûn dikarin linux-mfutex-valve kernel ceribandinê PPA bikar bînin (sudo add-apt-depo ppa: valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Ger kernelek we ya bi piştgirîya fsync heye, gava ku hûn Proton 4.11-ê dimeşînin, konsol dê peyama "fsync: up and running" nîşan bide. Hûn dikarin bi ala PROTON_NO_FSYNC=1 zorê bidin ku fsync were girtin.

Source: opennet.ru

Add a comment