Valve weputara Proton 4.11, ụlọ maka ịme egwuregwu Windows na Linux

Ụlọ ọrụ Valve bipụtara alaka oru ngo ohuru Proton 4.11, dabere na mmepe nke ọrụ mmanya na ebumnuche iji hụ na mmalite nke ngwa egwuregwu emepụtara maka Windows wee gosipụta ya na katalọgụ Steam na Linux. Mmepe oru ngo kesaa n'okpuru ikikere BSD. Ka ha dị njikere, a na-ebufe mgbanwe ndị e mepụtara na Proton na mmanya mbụ na ọrụ ndị yiri ya, dị ka DXVK na vkd3d.

Proton na-enye gị ohere ịme ngwa egwuregwu naanị Windows na onye ahịa Steam Linux. Ihe ngwugwu a gụnyere mmejuputa DirectX 10/11 (dabere na NZP) na 12 (dabere na vkd3d), na-arụ ọrụ site na ntụgharị nke DirectX oku na Vulkan API, na-enye nkwado dị mma maka ndị na-ahụ maka egwuregwu na ikike iji ọnọdụ ihuenyo zuru oke n'agbanyeghị mkpebi ihuenyo kwadoro na egwuregwu. E jiri ya tụnyere mmanya mbụ ahụ, arụmọrụ nke egwuregwu nwere ọtụtụ ihe abawanyela nke ukwuu n'ihi iji patches "esync"(Eventfd mmekọrịta) ma ọ bụ"futex/fsync".

Main mgbanwe na Proton 4.11:

  • Emere mmekọrịta na Wine 4.11 codebase, site na nke a na-ebufe ihe karịrị 3300 mgbanwe (alaka mbụ dabere na mmanya 4.2). 154 patches sitere na Proton 4.2 ebulila elu ma tinye ugbu a na ngwugwu mmanya bụ isi;
  • Nkwado nnwale agbakwunyere maka primitives mmekọrịta dabere na oku sistemu futex(), nke na-ebelata ibu CPU ma esync tụnyere esync. Tụkwasị na nke ahụ, mmejuputa ọhụrụ ahụ na-edozi nsogbu na mkpa iji ntọala pụrụ iche maka esync na ike ọgwụgwụ nke ndị na-akọwa faịlụ dị.

    Ihe kachasị mkpa nke ọrụ a na-arụ bụ ịgbasawanye ọrụ nke ọkọlọtọ futex () usoro oku na Linux kernel na ike dị mkpa maka ezigbo mmekọrịta nke ọdọ mmiri eri. Patches nwere nkwado maka ọkọlọtọ FUTEX_WAIT_MULTIPLE dị mkpa maka Proton adịlarị bufere maka nsonye na isi Linux kernel na glibc. Adịnyebeghị mgbanwe ndị a kwadebere na kernel isi, yabụ n'oge ọ dị mkpa iji guzobe kernel pụrụ iche nwere nkwado maka primitives ndị a;

    Valve weputara Proton 4.11, ụlọ maka ịme egwuregwu Windows na Linux

  • Interlayer NZP (mmejuputa DXGI, Direct3D 10 na Direct3D 11 n'elu Vulkan API) emelitere na ụdị. 1.3na NJV (mmejuputa nnwale nke Direct3D 9 n'elu Vulkan) ruo ụdị 0.13f. Iji mee ka nkwado D9VK dị na Proton, jiri ọkọlọtọ PROTON_USE_D9VK;
  • A na-ebufe ọnụego ume ọhụrụ nke ugbu a na egwuregwu;
  • Emeela ndozi ka ọ na-ejikwa elekwasị anya òké na njikwa windo;
  • Ntinye ntinye edobere na nsogbu na nkwado vibration maka joysticks na-eme na egwuregwu ụfọdụ, ọkachasị na egwuregwu dabere na injin Unity;
  • Nkwado agbakwunyere maka ụdị OpenVR SDK kachasị ọhụrụ;
  • Ihe mejupụtara FAudio nwere mmejuputa ọba akwụkwọ ụda DirectX (API XAudio2, X3DAudio, XAPO na XACT3) ka ewepụtara 19.07;
  • E doziela nsogbu dị na sistemụ netwọkụ na egwuregwu GameMaker;
  • A na-ewu ọtụtụ modul mmanya ugbu a dị ka faịlụ Windows PE kama ọba akwụkwọ Linux. Ka ọrụ na-aga n'ihu na mpaghara a, iji PE ga-enyere ụfọdụ DRM na usoro mgbochi aghụghọ aka. Ọ bụrụ na ị na-eji Proton na-ewuli omenala, ọ ga-adị gị mkpa ịmegharị igwe mebere Vagrant iji wuo faịlụ PE.

Tupu anabatakwa patches Valve n'ime kernel Linux bụ isi, iji futex() kama esync chọrọ ịwụnye kernel pụrụ iche na nkwado maka ọdọ mmiri mmekọrịta eri etinyere na patches. fsync. Maka Arch Linux na AUR ugbua bipụtara ngwugwu kernel emebere ya na patches fsync. Na Ubuntu 18.04 na 19.04, ị nwere ike iji linux-mfutex-valve experimental kernel PPA (sudo add-apt-repository ppa: valve-experimental/kernel-bionic; sudo apt-nweta linux-mfutex-valve);

Ọ bụrụ na ị nwere kernel nwere nkwado fsync, mgbe ị na-agba Proton 4.11, console ga-egosipụta ozi "fsync: elu na-agba ọsọ". Ị nwere ike ịmanye fsync ka gbanyụọ ya site na iji ọkọlọtọ PROTON_NO_FSYNC=1.

isi: opennet.ru

Tinye a comment