Valve e lokolla Proton 4.11, sethala sa ho tsamaisa lipapali tsa Windows ho Linux

Khampani ea Valve e phatlalalitsoeng lekala le lecha la morero Proton 4.11, ho ipapisitsoe le nts'etsopele ea projeke ea Veine mme sepheo sa eona ke ho netefatsa ho qalisoa ha lits'ebetso tsa lipapali tse etselitsoeng Windows le ho hlahisoa lethathamong la li-Steam ho Linux. Lintlafatso tsa merero ho jaleha tlas'a laesense ea BSD. Ha li se li loketse, liphetoho tse entsoeng ho Proton li fetisetsoa ho Veine ea pele le merero e amanang le eona, e kang DXVK le vkd3d.

Proton e u lumella ho tsamaisa lits'ebetso tsa lipapali tsa Windows-feela ho moreki oa Steam Linux. Sephutheloana se kenyelletsa ts'ebetsong ea DirectX 10/11 (e thehiloeng ho DXVK) le 12 (e ipapisitse le vkd3d), e sebetsang ka phetolelo ea li-call tsa DirectX ho Vulkan API, e fana ka tšehetso e ntlafetseng bakeng sa balaoli ba lipapali le bokhoni ba ho sebelisa mokhoa o feletseng oa skrine ho sa tsotellehe liqeto tsa skrine tse tšehetsoeng lipapaling. Ha ho bapisoa le Veine ea mantlha, ts'ebetso ea lipapali tse nang le likhoele tse ngata e eketsehile haholo ka lebaka la ts'ebeliso ea li-patches "esync"(Eventfd Synchronization) kapa "futex/fsync".

ka sehloohong liphetoho ho Proton 4.11:

  • Ho lumellana le Wine 4.11 codebase ho ile ha etsoa, ​​​​ho tloha moo liphetoho tse fetang 3300 li fetisitsoeng (lekala la pele le ne le thehiloe ho veine 4.2). Lipache tse 154 tse tsoang ho Proton 4.2 li se li fetiselitsoe holimo 'me joale li kenyelelitsoe ka har'a sephutheloana se seholo sa Veine;
  • E kentse ts'ehetso ea liteko bakeng sa li-primitives tsa li-synchronization tse thehiloeng ho futex() system call, e fokotsang boima ba CPU ha bo bapisoa le esync. Ho phaella moo, ts'ebetsong e ncha e rarolla mathata ka tlhokahalo ea ho e sebelisa litlhophiso tse khethehileng bakeng sa esync le mokhathala o ka bang teng oa litlhaloso tsa faele tse fumanehang.

    Moko oa mosebetsi o ntseng o etsoa ke ho holisa ts'ebetso ea mohala o tloaelehileng oa futex() ho Linux kernel ka bokhoni bo hlokahalang bakeng sa khokahano e nepahetseng ea letamo la likhoele. Lipache tse tšehetsang folakha ea FUTEX_WAIT_MULTIPLE tse hlokahalang bakeng sa Proton li se li ntse li le teng fetisetsoa bakeng sa ho kenyelletsoa ka har'a kernel e kholo ea Linux le glibc. Liphetoho tse lokiselitsoeng ha li e-s'o kenyelletsoe kernel e kholo, kahoo ka nako eo hoa hlokahala theha kernel e khethehileng e nang le tšehetso bakeng sa li-primitives tsena;

    Valve e lokolla Proton 4.11, sethala sa ho tsamaisa lipapali tsa Windows ho Linux

  • Interlayer DXVK (ts'ebetso ea DXGI, Direct3D 10 le Direct3D 11 holim'a Vulkan API) e ntlafalitsoe hore e be mofuta 1.3le D9VK (ts'ebetso ea liteko ea Direct3D 9 holim'a Vulkan) ho fihlela mofuta oa 0.13f. Ho nolofalletsa tšehetso ea D9VK ho Proton, sebelisa folakha ea PROTON_USE_D9VK;
  • Sekhahla sa ho khatholla ha hona joale se fetisetsoa lipapaling;
  • Litokiso li entsoe ho sebetsana le toeba le taolo ea fensetere;
  • Setsi se tsitsitseng sa ho kenya le mathata ka tšehetso ea vibrate bakeng sa li-joystick tse hlahang lipapaling tse ling, haholo-holo lipapaling tse thehiloeng ho enjene ea Unity;
  • Ts'ehetso e ekelitsoeng bakeng sa mofuta oa morao-rao oa OpenVR SDK;
  • Likarolo tsa FAudio tse nang le ts'ebetsong ea lilaebrari tsa molumo oa DirectX (API XAudio2, X3DAudio, XAPO le XACT3) li ntlafalitsoe ho lokolla 19.07;
  • Mathata a marang-rang a marang-rang lipapaling ho GameMaker a rarollotsoe;
  • Li-module tse ngata tsa Veine li se li hahiloe joalo ka lifaele tsa Windows PE ho fapana le lilaebrari tsa Linux. Ha mosebetsi o ntse o tsoela pele sebakeng sena, tšebeliso ea PE e tla thusa mekhoa e meng ea DRM le anti-cheat. Haeba u sebelisa tloaelo ea Proton e hahang, u tla hloka ho etsa mochini o hlakileng oa Vagrant ho aha lifaele tsa PE.

Pele li-patches tsa Valve li amoheloa ka har'a Linux kernel e kholo, ho sebelisa futex() sebakeng sa esync ho hloka ho kenya kernel e khethehileng e nang le ts'ehetso bakeng sa letamo la khokahanyo ea khoele e kenngoeng ka har'a lihlopha tse ngata. fsync. Bakeng sa Arch Linux ho AUR e se e ntse e le e phatlalalitsoeng Sephutheloana sa kernel se lokiselitsoeng se kopantsoe le li-patches tsa fsync. Ho Ubuntu 18.04 le 19.04, o ka sebelisa kernel ea liteko tsa linux-mfutex-valve PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Haeba u na le kernel e nang le tšehetso ea fsync, ha u matha Proton 4.11, console e tla hlahisa molaetsa "fsync: up and running". U ka qobella fsync hore e tingoe u sebelisa PROTON_NO_FSYNC=1 folakha.

Source: opennet.ru

Eketsa ka tlhaloso