Hoʻokuʻu ʻo Valve i ka Proton 4.11, kahi hui no ka holo ʻana i nā pāʻani Windows ma Linux

Hui Alaula paʻi ʻia lālā papahana hou Proton 4.11, ma muli o ka hoʻomohala ʻana o ka papahana Wine a me ka manaʻo e hōʻoia i ka hoʻomaka ʻana o nā noi pāʻani i hana ʻia no Windows a hōʻike ʻia ma ka papa inoa Steam ma Linux. Nā hoʻomohala papahana pālahalaha aku ma lalo o ka laikini BSD. Ke mākaukau nei lākou, ua hoʻololi ʻia nā hoʻololi i kūkulu ʻia ma Proton i ka waina kumu a me nā papahana pili, e like me DXVK a me vkd3d.

Hāʻawi ʻo Proton iā ʻoe e holo pololei i nā noi pāʻani Windows-wale i ka mea kūʻai aku Steam Linux. Aia ka pūʻolo i kahi hoʻokō o DirectX 10/11 (ma muli o DXVK) a me 12 (ma muli o vkd3d), e hana ana ma o ka unuhi ʻana o nā kelepona DirectX i ka Vulkan API, hāʻawi i ke kākoʻo i hoʻomaikaʻi ʻia no nā mea hoʻokele pāʻani a me ka hiki ke hoʻohana i ke ʻano pale piha me ka nānā ʻole i nā hoʻonā pale i kākoʻo ʻia i nā pāʻani. Hoʻohālikelike ʻia i ka waina mua, ua hoʻonui nui ʻia ka hana o nā pāʻani multi-threaded mahalo i ka hoʻohana ʻana i nā patches "esync"(Eventfd Synchronization) a i ʻole "futex/fsync".

ka papa kuhikuhiE nā loli ma Proton 4.11:

  • Hoʻonohonoho ʻia me ka Wine 4.11 codebase, kahi i hoʻololi ʻia ma mua o 3300 (ua hoʻokumu ʻia ka lālā mua ma ka waina 4.2). Ua hoʻoneʻe ʻia nā ʻāpana 154 mai Proton 4.2 i uka a ua hoʻokomo ʻia i loko o ka pūʻolo waina nui;
  • Hoʻohui ʻia i ke kākoʻo hoʻokolohua no ka synchronization primitives e pili ana i ka futex() system call, e hōʻemi ana i ka ukana CPU i hoʻohālikelike ʻia me esync. Eia kekahi, hoʻoponopono ka hoʻokō hou i nā pilikia me ka pono e hoʻohana hoʻonohonoho kūikawā no ka esync a me ka pau ʻole o nā mea wehewehe faila i loaʻa.

    ʻO ke kumu o ka hana e hana ʻia nei, ʻo ia ka hoʻonui ʻana i ka hana o ke kelepona ʻōnaehana futex () maʻamau i ka kernel Linux me nā mana e pono ai no ka synchronization maikaʻi loa o ka pool thread. ʻO nā ʻāpana me ke kākoʻo no ka hae FUTEX_WAIT_MULTIPLE pono no Proton hoʻoili ʻia no ka hoʻokomo ʻana i ka kernel Linux nui a ʻO Glibc. ʻAʻole i hoʻokomo ʻia nā hoʻololi i hoʻomākaukau ʻia i ka kernel nui, no laila i kēia manawa pono ia hoʻokumu kahi kernel kūikawā me ke kākoʻo no kēia mau mea kahiko;

    Hoʻokuʻu ʻo Valve i ka Proton 4.11, kahi hui no ka holo ʻana i nā pāʻani Windows ma Linux

  • Mea hoʻopili DXVK (ka hoʻokō ʻana o DXGI, Direct3D 10 a me Direct3D 11 ma luna o ka Vulkan API) i hoʻonui ʻia i ka mana 1.3a me ka E9VK (he hoʻokō hoʻokolohua o Direct3D 9 ma luna o Vulkan) a hiki i ka mana 0.13f. No ke kākoʻo ʻana iā D9VK ma Proton, e hoʻohana i ka hae PROTON_USE_D9VK;
  • Hoʻouna ʻia ka helu hōʻano hou o kēia manawa i nā pāʻani;
  • Ua hana ʻia nā hoʻoponopono no ka mālama ʻana i ka ʻiole a me ka hoʻokele puka makani;
  • Hoʻopaʻa ʻia ka lag hoʻokomo a me nā pilikia me ke kākoʻo vibration no nā mea hauʻoli e kū nei i kekahi mau pāʻani, ʻoi aku hoʻi i nā pāʻani e pili ana i ka mīkini Unity;
  • Hoʻohui i ke kākoʻo no ka mana hou o OpenVR SDK;
  • Ua hōʻano hou ʻia nā ʻāpana FAudio me ka hoʻokō ʻana i nā hale waihona leo DirectX (API XAudio2, X3DAudio, XAPO a me XACT3) e hoʻokuʻu i ka 19.07;
  • Ua hoʻoholo ʻia nā pilikia me ka subsystem pūnaewele i nā pāʻani ma GameMaker;
  • Ua kūkulu ʻia nā modula waina he nui e like me nā faila Windows PE ma kahi o nā hale waihona puke Linux. Ke holomua nei ka hana ma kēia wahi, e kōkua ka hoʻohana ʻana i ka PE i kekahi mau DRM a me nā ʻōnaehana anti-cheat. Inā ʻoe e hoʻohana i nā hana Proton maʻamau, pono paha ʻoe e hana hou i ka mīkini virtual Vagrant e kūkulu i nā faila PE.

Ma mua o ka hoʻokomo ʻia ʻana o nā pā o Valve i loko o ka kernel Linux nui, me ka hoʻohana ʻana i ka futex() ma kahi o ka esync e pono ai ke kau ʻana i kahi kernel kūikawā me ke kākoʻo no ka ʻauʻau hoʻonohonoho thread i hoʻokomo ʻia i kahi pūʻulu o nā pā. fsync. No Arch Linux ma AUR i paʻiʻia pūʻolo kernel i hoʻomākaukau ʻia i hoʻohui ʻia me nā ʻāpana fsync. Ma ka Ubuntu 18.04 a me 19.04, hiki iā ʻoe ke hoʻohana i ka linux-mfutex-valve hoʻokolohua kernel PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Inā loaʻa iā ʻoe kahi kernel me ke kākoʻo fsync, ke holo ʻoe iā Proton 4.11, e hōʻike ka console i ka memo "fsync: up and running". Hiki iā ʻoe ke hoʻopau i ka fsync me ka hoʻohana ʻana i ka hae PROTON_NO_FSYNC=1.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka