Valve mengeluarkan Proton 4.11, suite untuk menjalankan permainan Windows di Linux

Syarikat Injap ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° cawangan projek baru Proton 4.11, berdasarkan perkembangan projek Wine dan bertujuan untuk memastikan pelancaran aplikasi permainan yang dicipta untuk Windows dan dibentangkan dalam katalog Steam di Linux. Perkembangan projek sebar di bawah lesen BSD. Apabila mereka bersedia, perubahan yang dibangunkan dalam Proton dipindahkan ke Wain asal dan projek berkaitan, seperti DXVK dan vkd3d.

Proton membenarkan anda menjalankan terus aplikasi permainan Windows sahaja dalam klien Steam Linux. Pakej ini termasuk pelaksanaan DirectX 10/11 (berdasarkan DXVK) dan 12 (berdasarkan vkd3d), bekerja melalui terjemahan panggilan DirectX ke API Vulkan, menyediakan sokongan yang lebih baik untuk pengawal permainan dan keupayaan untuk menggunakan mod skrin penuh tanpa mengira resolusi skrin yang disokong dalam permainan. Berbanding dengan Wain asal, prestasi permainan berbilang benang telah meningkat dengan ketara berkat penggunaan tampalan "esync"(Eventfd Synchronization) atau "futex/fsync".

Utama perubahan dalam Proton 4.11:

  • Penyegerakan dengan pangkalan kod Wine 4.11 telah dijalankan, yang mana lebih daripada 3300 perubahan telah dipindahkan (cawangan sebelumnya adalah berdasarkan wain 4.2). 154 tompok dari Proton 4.2 telah dipindahkan ke hulu dan kini dimasukkan ke dalam pakej Wain utama;
  • Menambahkan sokongan percubaan untuk primitif penyegerakan berdasarkan panggilan sistem futex(), yang mengurangkan beban CPU berbanding esync. Di samping itu, pelaksanaan baru menyelesaikan masalah dengan keperluan untuk digunakan tetapan khas untuk penyegerakan dan kemungkinan kehabisan deskriptor fail yang tersedia.

    Intipati kerja yang sedang dilakukan adalah untuk mengembangkan fungsi panggilan sistem futex() standard dalam kernel Linux dengan keupayaan yang diperlukan untuk penyegerakan optimum kumpulan benang. Tampalan dengan sokongan untuk bendera FUTEX_WAIT_MULTIPLE yang diperlukan untuk Proton sudah pun dipindahkan untuk dimasukkan ke dalam kernel Linux utama dan glibc. Perubahan yang disediakan belum termasuk dalam kernel utama, jadi pada masa ini ia adalah perlu mewujudkan kernel khas dengan sokongan untuk primitif ini;

    Valve mengeluarkan Proton 4.11, suite untuk menjalankan permainan Windows di Linux

  • Interlayer DXVK (pelaksanaan DXGI, Direct3D 10 dan Direct3D 11 di atas API Vulkan) dikemas kini kepada versi 1.3Dan D9VK (pelaksanaan eksperimen Direct3D 9 di atas Vulkan) sehingga versi 0.13f. Untuk mendayakan sokongan D9VK dalam Proton, gunakan bendera PROTON_USE_D9VK;
  • Kadar penyegaran monitor semasa dihantar ke permainan;
  • Pembetulan telah dibuat untuk mengendalikan fokus tetikus dan pengurusan tetingkap;
  • Memperbaiki ketinggalan input dan masalah dengan sokongan getaran untuk kayu bedik yang berlaku dalam sesetengah permainan, terutamanya dalam permainan berdasarkan enjin Unity;
  • Menambah sokongan untuk versi terkini OpenVR SDK;
  • Komponen FAudio dengan pelaksanaan pustaka bunyi DirectX (API XAudio2, X3DAudio, XAPO dan XACT3) telah dikemas kini untuk mengeluarkan 19.07;
  • Masalah dengan subsistem rangkaian dalam permainan di GameMaker telah diselesaikan;
  • Banyak modul Wine kini dibina sebagai fail Windows PE dan bukannya perpustakaan Linux. Semasa kerja berjalan dalam bidang ini, penggunaan PE akan membantu beberapa sistem DRM dan anti-penipuan. Jika anda menggunakan binaan Proton tersuai, kemungkinan besar anda perlu mencipta semula mesin maya Vagrant untuk membina fail PE.

Sebelum patch Valve diterima pakai ke dalam kernel Linux utama, menggunakan futex() dan bukannya esync memerlukan pemasangan kernel khas dengan sokongan untuk kumpulan penyegerakan benang yang dilaksanakan dalam satu set patch fsync. Untuk Arch Linux dalam AUR sudah diterbitkan pakej kernel siap sedia disusun dengan patch fsync. Pada Ubuntu 18.04 dan 19.04, anda boleh menggunakan kernel eksperimen linux-mfutex-valve PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Jika anda mempunyai kernel dengan sokongan fsync, apabila anda menjalankan Proton 4.11, konsol akan memaparkan mesej "fsync: up and running". Anda boleh memaksa fsync dimatikan menggunakan bendera PROTON_NO_FSYNC=1.

Sumber: opennet.ru

Tambah komen