Valve lëshon Proton 4.11, një komplet për ekzekutimin e lojërave Windows në Linux

Kompania Valve botuar dega e re e projektit Protoni 4.11, bazuar në zhvillimet e projektit Wine dhe synon të sigurojë lëshimin e aplikacioneve të lojërave të krijuara për Windows dhe të paraqitura në katalogun Steam në Linux. Zhvillimet e projektit përhapet nën licencën BSD. Sapo të jenë gati, ndryshimet e zhvilluara në Proton transferohen në Wine origjinale dhe projekte të lidhura me to, si DXVK dhe vkd3d.

Proton ju lejon të ekzekutoni drejtpërdrejt aplikacionet e lojërave vetëm për Windows në klientin Steam Linux. Paketa përfshin një implementim të DirectX 10/11 (bazuar në DXVK) dhe 12 (bazuar në vkd3d), duke punuar përmes thirrjeve DirectX në Vulkan API, ofron mbështetje të përmirësuar për kontrollorët e lojërave dhe aftësinë për të përdorur modalitetin e ekranit të plotë, pavarësisht nga rezolucionet e ekranit të mbështetur në lojëra. Krahasuar me Verën origjinale, performanca e lojërave me shumë fije është rritur ndjeshëm falë përdorimit të arnimeve "esync"(Sinkronizimi i ngjarjeve fd) ose "futex/fsync".

Kryesore ndryshimet në Proton 4.11:

  • U krye sinkronizimi me bazën e kodit Wine 4.11, nga e cila u transferuan më shumë se 3300 ndryshime (dega e mëparshme bazohej në verën 4.2). 154 arna nga Proton 4.2 janë zhvendosur në rrjedhën e sipërme dhe tani janë përfshirë në paketën kryesore të Wine;
  • U shtua mbështetje eksperimentale për primitivët e sinkronizimit bazuar në thirrjen e sistemit futex(), e cila redukton ngarkesën e CPU-së në krahasim me esync. Për më tepër, zbatimi i ri zgjidh problemet me nevojën për përdorim cilësime të veçanta për esync dhe shterjen e mundshme të përshkruesve të skedarëve në dispozicion.

    Thelbi i punës që po bëhet është zgjerimi i funksionalitetit të thirrjes standarde të sistemit futex() në kernelin Linux me aftësitë e nevojshme për sinkronizimin optimal të grupit të fijeve. Arna me mbështetje për flamurin FUTEX_WAIT_MULTIPLE të nevojshme për Proton janë tashmë të transferuara për përfshirje në kernelin kryesor Linux dhe glibc. Ndryshimet e përgatitura nuk janë përfshirë ende në kernelin kryesor, kështu që për momentin është e nevojshme për të vendosur një kernel special me mbështetje për këta primitivë;

    Valve lëshon Proton 4.11, një komplet për ekzekutimin e lojërave Windows në Linux

  • Ndërshtresore DXVK (zbatimi i DXGI, Direct3D 10 dhe Direct3D 11 në krye të Vulkan API) përditësuar në version 1.3Dhe D9VK (një zbatim eksperimental i Direct3D 9 në krye të Vulkan) deri në versionin 0.13f. Për të aktivizuar mbështetjen e D9VK në Proton, përdorni flamurin PROTON_USE_D9VK;
  • Shpejtësia aktuale e rifreskimit të monitorit transmetohet në lojëra;
  • Janë bërë rregullime për të trajtuar fokusin e miut dhe menaxhimin e dritareve;
  • Rregulloi vonesën e hyrjes dhe problemet me mbështetjen e dridhjeve për levë që ndodhin në disa lojëra, veçanërisht në lojërat e bazuara në motorin Unity;
  • Mbështetje e shtuar për versionin më të fundit të OpenVR SDK;
  • Komponentët FAudio me implementimin e bibliotekave të tingullit DirectX (API XAudio2, X3DAudio, XAPO dhe XACT3) janë përditësuar për të lëshuar 19.07;
  • Problemet me nënsistemin e rrjetit në lojërat në GameMaker janë zgjidhur;
  • Shumë module Wine janë ndërtuar tani si skedarë Windows PE në vend të bibliotekave Linux. Ndërsa puna përparon në këtë fushë, përdorimi i PE do të ndihmojë disa sisteme DRM dhe anti-cheat. Nëse përdorni ndërtime të personalizuara të Protonit, me shumë mundësi do t'ju duhet të rikrijoni makinën virtuale Vagrant për të ndërtuar skedarët PE.

Përpara se arnimet e Valve të miratohen në kernelin kryesor të Linux-it, përdorimi i futex() në vend të esync kërkon instalimin e një kerneli të posaçëm me mbështetje për grupin e sinkronizimit të temave të implementuar në një grup arnash fsync. Për Arch Linux në AUR tashmë botuar paketë e gatshme kernel e përpiluar me arna fsync. Në Ubuntu 18.04 dhe 19.04, mund të përdorni kernelin eksperimental të linux-mfutex-valve PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Nëse keni një kernel me mbështetje fsync, kur përdorni Proton 4.11, tastiera do të shfaqë mesazhin "fsync: në funksionim". Mund ta detyrosh fsync të çaktivizohet duke përdorur flamurin PROTON_NO_FSYNC=1.

Burimi: opennet.ru

Shto një koment