I-Valve ikhipha i-Proton 4.11, i-suite yokusebenzisa imidlalo ye-Windows ku-Linux

Inkampani yeValve eshicilelwe igatsha lephrojekthi entsha I-Proton 4.11, ngokusekelwe ekuthuthukisweni kwephrojekthi Yewayini futhi okuhloswe ngayo ukuqinisekisa ukwethulwa kwezinhlelo zemidlalo ezidalelwe iWindows futhi zethulwa kukhathalogi yeSteam ku-Linux. Intuthuko yephrojekthi ukubhebhetheka ngaphansi kwelayisensi ye-BSD. Ngokushesha nje lapho sezilungile, izinguquko ezenziwe ku-Proton zidluliselwa ku-Wayini yasekuqaleni namaphrojekthi ahlobene, njenge-DXVK ne-vkd3d.

I-Proton ikuvumela ukuthi usebenzise ngokuqondile izinhlelo zokudlala ze-Windows kuphela kuklayenti le-Steam Linux. Iphakheji ifaka ukuqaliswa kwe-DirectX 10/11 (ngokusekelwe ku I-DXVK) kanye no-12 (kusekelwe ku vkd3d), esebenza ngokuhumusha kwamakholi e-DirectX ku-Vulkan API, inikeza ukusekelwa okuthuthukisiwe kwezilawuli zegeyimu kanye nekhono lokusebenzisa imodi yesikrini esigcwele kungakhathaliseki ukuthi yiziphi izinqumo zesikrini ezisekelwa imidlalo. Uma kuqhathaniswa newayini loqobo, ukusebenza kwemidlalo enemicu eminingi kwenyuke kakhulu ngenxa yokusetshenziswa kweziqephu "esync"(Eventfd Synchronization) noma "futex/fsync".

main izinguquko ku-Proton 4.11:

  • Ukuvumelanisa ne-Wine 4.11 codebase kwenziwa, lapho izinguquko ezingaphezu kuka-3300 zidluliselwe (igatsha langaphambili lalisekelwe kuwayini 4.2). Amapheshana angu-154 asuka ku-Proton 4.2 ahanjiswe phezulu nomfula futhi manje afakiwe kuphakheji enkulu yewayini;
  • Kungezwe usekelo lokuhlola lwezinto zokuqala zokuvumelanisa ngokusekelwe ocingweni lwesistimu ye-futex(), enciphisa umthwalo we-CPU uma kuqhathaniswa nokuvumelanisa. Ngaphezu kwalokho, ukuqaliswa okusha kuxazulula izinkinga ngesidingo sokusebenzisa izilungiselelo ezikhethekile ngokuvumelanisa kanye nokukhathala okungaba khona kwezincazelo zefayela ezitholakalayo.

    Ingqikithi yomsebenzi owenziwayo iwukunweba ukusebenza kocingo olujwayelekile lwesistimu ye-futex() ku-Linux kernel ngamakhono adingekayo okuvumelanisa ngokugcwele kwephuli yochungechunge. Amapeshi anosekelo lwefulegi le-FUTEX_WAIT_MULTIPLE adingekayo ku-Proton asevele akhona dlulisiwe ukuze ifakwe ku-Linux kernel eyinhloko kanye I-Glibc. Izinguquko ezilungisiwe azikafakwa ku-kernel eyinhloko, ngakho-ke okwamanje kuyadingeka setha i-kernel ekhethekile esekelwa lawa ma-primitives;

    I-Valve ikhipha i-Proton 4.11, i-suite yokusebenzisa imidlalo ye-Windows ku-Linux

  • I-interlayer I-DXVK (ukusetshenziswa kwe-DXGI, i-Direct3D 10 kanye ne-Direct3D 11 phezu kwe-Vulkan API) ivuselelwe ukuze ibe yinguqulo 1.3, futhi I-D9VK (ukuqaliswa kokuhlolwa kwe-Direct3D 9 phezu kwe-Vulkan) kuze kufike enguqulweni engu-0.13f. Ukuze unike amandla usekelo lwe-D9VK ku-Proton, sebenzisa ifulegi le-PROTON_USE_D9VK;
  • Izinga lokuvuselela lokuqapha lamanje lidluliselwa emidlalweni;
  • Ukulungiswa kwenziwe ukuphatha ukugxila kwegundane nokuphathwa kwewindi;
  • I-Fixed input lag kanye nezinkinga ngosekelo lokudlidliza lwezinduku zenjabulo ezenzeka kweminye imidlalo, ikakhulukazi kumageyimu asekelwe enjinini ye-Unity;
  • Ukwesekwa okwengeziwe kwenguqulo yakamuva ye-OpenVR SDK;
  • Izingxenye ze-FAudio ezinokuqaliswa kwemitapo yomsindo ye-DirectX (API XAudio2, X3DAudio, XAPO kanye ne-XACT3) zibuyekeziwe ukuze kukhishwe i-19.07;
  • Izinkinga nge-subsystem yenethiwekhi emidlalweni eku-GameMaker sezixazululiwe;
  • Amamojula amaningi ewayini manje akhiwe njengamafayela e-Windows PE esikhundleni semitapo yolwazi ye-Linux. Njengoba umsebenzi uqhubeka kule ndawo, ukusetshenziswa kwe-PE kuzosiza ezinye i-DRM kanye nezinhlelo zokulwa nokukhohlisa. Uma usebenzisa ukwakhiwa kwe-Proton yangokwezifiso, cishe uzodinga ukuphinda udale umshini obonakalayo we-Vagrant ukuze wakhe amafayela e-PE.

Ngaphambi kokuthi amapeshi eValve amukelwe ku-Linux kernel eyinhloko, ukusebenzisa i-futex() esikhundleni se-esync kudinga ukufaka i-kernel ekhethekile ngokusekelwa kwechibi lokuvumelanisa intambo elisetshenziswe kusethi yamapeshi. fsync. Okwe-Arch Linux ku-AUR vele eshicilelwe iphakethe le-kernel elenziwe ngomumo elihlanganiswe neziqephu ze-fsync. Ku-Ubuntu 18.04 kanye ne-19.04, ungasebenzisa i-linux-mfutex-valve experimental kernel PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Uma une-kernel enokwesekwa kwe-fsync, uma usebenzisa i-Proton 4.11, ikhonsoli izobonisa umlayezo "fsync: up and running". Ungaphoqa i-fsync ukuthi ivalwe usebenzisa ifulegi le-PROTON_NO_FSYNC=1.

Source: opennet.ru

Engeza amazwana