Valve Proton 4.11 чыгарат, Linux оюндарында Windows оюндарын иштетүү үчүн

Valve Company жарыяланган жаңы долбоордун филиалы Протон 4.11, Wine долбоорунун иштеп чыгууларына негизделген жана Windows үчүн түзүлгөн жана Linux боюнча Steam каталогунда берилген оюн тиркемелерин ишке киргизүүнү камсыз кылууга багытталган. Долбоордун иштеп чыгуулары жайылуу BSD лицензиясы боюнча. Алар даяр болгондон кийин, Протондо иштелип чыккан өзгөртүүлөр баштапкы Шарапка жана DXVK жана vkd3d сыяктуу тиешелүү долбоорлорго өткөрүлүп берилет.

Proton Steam Linux кардарында Windows үчүн гана оюн тиркемелерин түз иштетүүгө мүмкүндүк берет. Пакет DirectX 10/11 ишке ашырууну камтыйт (негизинде DXVK) жана 12 (негизинде vkd3d), DirectX чалууларын Vulkan API'ге которуу аркылуу иштөө, оюн контроллерлору үчүн жакшыртылган колдоону жана оюндарда колдоого алынган экрандын резолюцияларына карабастан толук экран режимин колдонуу мүмкүнчүлүгүн камсыз кылат. Түпнуска Шарапка салыштырмалуу, патчтарды колдонуунун аркасында көп жиптүү оюндардын иштеши бир топ жогорулады "esync"(Eventfd Синхронизация) же "futex/fsync".

негизги Протондогу өзгөрүүлөр 4.11:

  • Wine 4.11 коддук базасы менен синхрондоштуруу жүргүзүлүп, андан 3300дөн ашык өзгөртүүлөр которулган (мурунку филиал шарап 4.2ге негизделген). Proton 154ден 4.2 патч агымга жылдырылды жана азыр негизги Шарап пакетине киргизилди;
  • Futex() тутумунун чалуусунун негизинде синхрондоштуруу примитивдери үчүн эксперименталдык колдоо кошулду, бул процессордун жүгүн esync менен салыштырганда азайтат. Мындан тышкары, жаңы ишке ашыруу колдонуу зарылдыгы менен көйгөйлөрдү чечет атайын орнотуулар esync жана жеткиликтүү файл дескрипторлорунун мүмкүн түгөнүшү үчүн.

    Аткарылып жаткан иштин маңызы жип пулун оптималдуу синхрондоштуруу үчүн зарыл болгон мүмкүнчүлүктөр менен Linux өзөгүндөгү стандарттуу futex() тутумдук чалуусунун функционалдуулугун кеңейтүү болуп саналат. Proton үчүн зарыл болгон FUTEX_WAIT_MULTIPLE желекчесин колдогон патчтар мурунтан эле бар өткөрүлүп берилди негизги Linux ядросуна кошуу үчүн жана glibc. Даярдалган өзгөртүүлөр азырынча негизги ядродо камтылган эмес, андыктан учурда бул зарыл белгилөө бул примитивдерди колдоо менен атайын ядро;

    Valve Proton 4.11 чыгарат, Linux оюндарында Windows оюндарын иштетүү үчүн

  • Interlayer DXVK (Vulkan API үстүнө DXGI, Direct3D 10 жана Direct3D 11 ишке ашыруу) версияга жаңыртылган 1.3жана Д9ВК (Vulkan үстүнө Direct3D 9 эксперименталдык ишке ашыруу) 0.13f версиясына чейин. Protonдо D9VK колдоосун иштетүү үчүн PROTON_USE_D9VK желегин колдонуңуз;
  • Учурдагы монитордун жаңылануу ылдамдыгы оюндарга өткөрүлүп берилет;
  • Чычкандын фокусун жана терезени башкарууну башкаруу үчүн оңдоолор жасалды;
  • Кээ бир оюндарда, өзгөчө Unity кыймылдаткычынын негизиндеги оюндарда пайда болгон киргизүүнүн артта калуусу жана джойстиктердин титирөөнүн колдоосу менен көйгөйлөр;
  • OpenVR SDK акыркы версиясын колдоо кошулду;
  • DirectX үн китепканаларын ишке ашыруу менен FAudio компоненттери (API XAudio2, X3DAudio, XAPO жана XACT3) 19.07. чыгарууга жаңыртылган;
  • GameMakerдеги оюндардагы тармактык подсистемадагы көйгөйлөр чечилди;
  • Көптөгөн Шарап модулдары азыр Linux китепканаларынын ордуна Windows PE файлдары катары курулган. Бул жаатта иш жүрүп жаткандыктан, PEди колдонуу кээ бир DRM жана анти-алдоо системаларына жардам берет. Эгер сиз протондун ыңгайлаштырылган түзүлүштөрүн колдонсоңуз, PE файлдарын түзүү үчүн Vagrant виртуалдык машинасын кайра түзүшүңүз керек болот.

Valve патчтары негизги Linux ядросуна кабыл алынганга чейин, esyncтин ордуна futex() колдонуу патчтардын топтомунда ишке ашырылган жип синхрондоштуруу пулун колдоосу менен атайын ядрону орнотууну талап кылат. fsync. AUR ичинде Arch Linux үчүн жарыяланган fsync тактары менен түзүлгөн даяр ядро ​​пакети. Ubuntu 18.04 жана 19.04 версияларында Linux-mfutex-клапан эксперименталдык ядросун колдоно аласыз (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-клапан);

Эгерде сизде fsync колдоосу бар ядро ​​болсо, Proton 4.11ди иштеткенде, консол "fsync: иштеп жатат" деген билдирүүнү көрсөтөт. PROTON_NO_FSYNC=1 желегин колдонуп fsyncти өчүрүүгө мажбурлай аласыз.

Source: opennet.ru

Комментарий кошуу