Valve Linuxda Windows o'yinlarini ishlatish uchun Proton 4.11 to'plamini chiqaradi

Valve kompaniyasi e'lon qilindi yangi loyiha filiali Proton 4.11, Wine loyihasining ishlanmalariga asoslangan va Windows uchun yaratilgan va Linuxda Steam katalogida taqdim etilgan o'yin ilovalarini ishga tushirishni ta'minlashga qaratilgan. Loyiha ishlanmalari tarqaldi BSD litsenziyasi ostida. Ular tayyor bo'lgach, Proton-da ishlab chiqilgan o'zgarishlar original Wine va DXVK va vkd3d kabi tegishli loyihalarga o'tkaziladi.

Proton Steam Linux mijozida to'g'ridan-to'g'ri faqat Windows o'yin ilovalarini ishga tushirish imkonini beradi. Paket DirectX 10/11 dasturini o'z ichiga oladi ( DXVK) va 12 (asoslangan vkd3d), DirectX qo'ng'iroqlarini Vulkan API-ga tarjima qilish orqali ishlaydigan, o'yin boshqaruvchilari uchun yaxshilangan yordam va o'yinlarda qo'llab-quvvatlanadigan ekran o'lchamlaridan qat'i nazar, to'liq ekran rejimidan foydalanish imkoniyatini beradi. Asl Wine bilan solishtirganda, yamoqlardan foydalanish tufayli ko'p bosqichli o'yinlarning ishlashi sezilarli darajada oshdi "sinxronlash"(Eventfd Synchronization) yoki "futex/fsync".

asosiy Proton 4.11 da o'zgarishlar:

  • Wine 4.11 kod bazasi bilan sinxronizatsiya amalga oshirildi, undan 3300 dan ortiq o'zgarishlar o'tkazildi (oldingi filial vino 4.2-ga asoslangan edi). Proton 154 dan 4.2 ta yamoq yuqoriga ko'chirildi va endi asosiy Wine to'plamiga kiritilgan;
  • Futex() tizim chaqiruviga asoslangan sinxronizatsiya ibtidoiylari uchun tajribaviy yordam qoʻshildi, bu esa esync bilan solishtirganda protsessor yukini kamaytiradi. Bundan tashqari, yangi dastur foydalanish zarurati bilan bog'liq muammolarni hal qiladi maxsus sozlamalar sinxronlash va mavjud fayl deskriptorlarining tugashi uchun.

    Amalga oshirilayotgan ishlarning mohiyati Linux yadrosida standart futex() tizim chaqiruvining funksionalligini iplar pulini optimal sinxronlashtirish uchun zarur bo'lgan imkoniyatlar bilan kengaytirishdan iborat. Proton uchun zarur bo'lgan FUTEX_WAIT_MULTIPLE bayrog'ini qo'llab-quvvatlaydigan yamalar allaqachon mavjud uzatildi asosiy Linux yadrosiga kiritish uchun va glibc. Tayyorlangan o'zgarishlar hali asosiy yadroga kiritilmagan, shuning uchun hozirgi vaqtda bu zarur tashkil etish bu primitivlarni qo'llab-quvvatlaydigan maxsus yadro;

    Valve Linuxda Windows o'yinlarini ishlatish uchun Proton 4.11 to'plamini chiqaradi

  • Interlayer DXVK (Vulkan API-ning yuqori qismida DXGI, Direct3D 10 va Direct3D 11-ni joriy qilish) versiyaga yangilangan 1.3va D9VK (Vulkanning tepasida Direct3D 9 ning eksperimental ilovasi) 0.13f versiyasigacha. Protonda D9VK qo'llab-quvvatlashini yoqish uchun PROTON_USE_D9VK bayrog'idan foydalaning;
  • Joriy monitorning yangilanish tezligi o'yinlarga uzatiladi;
  • Sichqonchani fokuslash va oynalarni boshqarish uchun tuzatishlar kiritildi;
  • Ruxsat etilgan kirish kechikishi va ba'zi o'yinlarda, ayniqsa Unity dvigateliga asoslangan o'yinlarda paydo bo'ladigan joystiklar uchun tebranishlarni qo'llab-quvvatlash bilan bog'liq muammolar;
  • OpenVR SDK ning so'nggi versiyasini qo'llab-quvvatlash qo'shildi;
  • DirectX ovoz kutubxonalarini (API XAudio2, X3DAudio, XAPO va XACT3) amalga oshirishga ega FAudio komponentlari 19.07.
  • GameMaker-dagi o'yinlarda tarmoq quyi tizimi bilan bog'liq muammolar hal qilindi;
  • Ko'pgina Wine modullari endi Linux kutubxonalari o'rniga Windows PE fayllari sifatida qurilgan. Ushbu sohada ish davom etar ekan, PE dan foydalanish ba'zi DRM va firibgarlikka qarshi tizimlarga yordam beradi. Agar siz maxsus Proton tuzilmalaridan foydalansangiz, PE fayllarini yaratish uchun Vagrant virtual mashinasini qayta yaratishingiz kerak bo'ladi.

Valve yamoqlari asosiy Linux yadrosiga qabul qilinishidan oldin, esync o'rniga futex() dan foydalanish yamoqlar to'plamida amalga oshirilgan ip sinxronlash pulini qo'llab-quvvatlaydigan maxsus yadroni o'rnatishni talab qiladi. fsync. AURda Arch Linux uchun allaqachon e'lon qilindi fsync yamoqlari bilan tuzilgan tayyor yadro paketi. Ubuntu 18.04 va 19.04 da siz linux-mfutex-valve eksperimental yadrosi PPA dan foydalanishingiz mumkin (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Agar sizda fsync-ni qo'llab-quvvatlaydigan yadro bo'lsa, Proton 4.11-ni ishga tushirganingizda, konsol "fsync: ishlamoqda" xabarini ko'rsatadi. Siz PROTON_NO_FSYNC=1 bayrog'i yordamida fsync-ni o'chirishga majbur qilishingiz mumkin.

Manba: opennet.ru

a Izoh qo'shish