Valve ngeculake Proton 4.11, suite kanggo game Windows ing Linux

Perusahaan Valve diterbitake cabang proyek anyar Proton 4.11 Kab, adhedhasar pangembangan proyek Wine lan ngarahake kanggo njamin peluncuran aplikasi game sing digawe kanggo Windows lan ditampilake ing katalog Steam ing Linux. Pangembangan proyek Penyebaran ing lisensi BSD. Sanalika wis siyap, owah-owahan sing dikembangake ing Proton ditransfer menyang Anggur asli lan proyek sing gegandhengan, kayata DXVK lan vkd3d.

Proton ngidini sampeyan langsung mbukak aplikasi game mung Windows ing klien Steam Linux. Paket kasebut kalebu implementasi DirectX 10/11 (adhedhasar DXVK) lan 12 (adhedhasar vkd3d), digunakake liwat terjemahan telpon DirectX menyang API Vulkan, nyedhiyakake dhukungan sing luwih apik kanggo pengontrol game lan kemampuan kanggo nggunakake mode layar wutuh preduli saka resolusi layar sing didhukung ing game. Dibandhingake karo Anggur asli, kinerja game multi-threaded wis tambah akeh amarga nggunakake patch "esync"(Eventfd Sinkronisasi) utawa "futex/fsync".

Utama owah-owahan ing Proton 4.11:

  • Sinkronisasi karo basis kode Wine 4.11 ditindakake, saka ngendi luwih saka 3300 owah-owahan ditransfer (cabang sadurunge adhedhasar anggur 4.2). 154 tambalan saka Proton 4.2 wis dipindhah munggah lan saiki kalebu ing paket Wine utama;
  • Ditambahake dhukungan eksperimen kanggo primitif sinkronisasi adhedhasar telpon sistem futex (), sing nyuda beban CPU dibandhingake karo esync. Kajaba iku, implementasine anyar solves masalah karo perlu kanggo nggunakake setelan khusus kanggo esync lan bisa kesel deskriptor file kasedhiya.

    Inti saka karya iki kanggo nggedhekake fungsi saka futex standar () telpon sistem ing kernel Linux karo kapabilitas perlu kanggo sinkronisasi optimal saka blumbang thread. Tambalan kanthi dhukungan kanggo gendera FUTEX_WAIT_MULTIPLE sing dibutuhake kanggo Proton wis ana ditransfer kanggo Gawan ing kernel Linux utama lan glibc. Owah-owahan sing disiapake durung kalebu ing kernel utama, mula saiki perlu kanggo netepake kernel khusus kanthi dhukungan kanggo primitif kasebut;

    Valve ngeculake Proton 4.11, suite kanggo game Windows ing Linux

  • Interlayer DXVK (implementasi DXGI, Direct3D 10 lan Direct3D 11 ing ndhuwur Vulkan API) dianyari menyang versi 1.3lan D9VK (implementasi eksperimen Direct3D 9 ing ndhuwur Vulkan) nganti versi 0.13f. Kanggo ngaktifake dhukungan D9VK ing Proton, gunakake gendΓ©ra PROTON_USE_D9VK;
  • Tingkat refresh monitor saiki ditularake menyang game;
  • Ndandani wis digawe kanggo nangani fokus mouse lan manajemen jendhela;
  • Ndandani input lag lan masalah karo dhukungan geter kanggo joystick sing kedadeyan ing sawetara game, utamane ing game adhedhasar mesin Unity;
  • Dhukungan ditambahake kanggo versi paling anyar saka OpenVR SDK;
  • Komponen FAudio kanthi implementasi perpustakaan swara DirectX (API XAudio2, X3DAudio, XAPO lan XACT3) wis dianyari kanggo release 19.07;
  • Masalah karo subsistem jaringan ing game ing GameMaker wis ditanggulangi;
  • Akeh modul Wine saiki dibangun minangka file Windows PE tinimbang perpustakaan Linux. Nalika karya ing wilayah iki maju, panggunaan PE bakal mbantu sawetara sistem DRM lan anti-cheat. Yen sampeyan nggunakake mbangun Proton khusus, sampeyan bakal kudu nggawΓ© ulang mesin virtual Vagrant kanggo mbangun file PE.

Sadurunge patch Valve diadopsi menyang kernel Linux utama, nggunakake futex () tinimbang esync mbutuhake nginstal kernel khusus kanthi dhukungan kanggo blumbang sinkronisasi benang sing ditindakake ing sakumpulan patch. fsync. Kanggo Arch Linux ing AUR wis diterbitake paket kernel siap-siap dikompilasi karo patch fsync. Ing Ubuntu 18.04 lan 19.04, sampeyan bisa nggunakake kernel eksperimental linux-mfutex-valve PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Yen sampeyan duwe kernel kanthi dhukungan fsync, nalika sampeyan mbukak Proton 4.11, console bakal nampilake pesen "fsync: munggah lan mlaku". Sampeyan bisa meksa fsync dipateni nggunakake gendΓ©ra PROTON_NO_FSYNC=1.

Source: opennet.ru

Add a comment