Компанията Valve пусна Proton 4.11, пакет за стартиране на Windows игри в Linux

Компания Valve публикува нов клон на проекта Proton 4.11, основан на разработките на проектa Wine и насочен към осигуряване на стартиране в Linux на игрови приложения, създадени за Windows и представени в каталога Steam. Разработките на проекта се разпространява под лицензией BSD. С развитием оригинального Wine и связанных проектов, таких как DXVK и vkd3d, изменения, разработанные в Proton, будут переноситься.

Proton позволява директно да стартира игрални приложения, предоставени само за Windows, в Linux клиента на Steam. Пакетът включва реализация на DirectX 10/11 (на базата на DXVK) и 12 (на база vkd3d), работа през транслация на DirectX в Vulkan API, предоставя подобрена поддръжка за игрови контролери и възможността за използване на режим на цял екран независимо от поддържаните в игрите резолюции. В сравнение с оригиналното Wine, значително е увеличена производителността на многопоточни игри благодарение на приложението на патчовете „esync» (Синхронизация Eventfd) или «futex/fsync».

Основни промени в Proton 4.11:

  • Извършена е синхронизация с кодовата база на Wine 4.11, от която са пренесени над 3300 промени (предишната версия се основаваше на Wine 4.2). 154 патча от Proton 4.2 бяха пренесени upstream и вече са част от основния състав на Wine;
  • Добавена е експериментална поддръжка на примитиви за синхронизация на базата на системния извикване futex(), който позволява намаляване на натоварването на CPU в сравнение с esync. Освен това, новата реализация решава проблемите с необходимостта от използване на специални настройки за esync и възможното изчерпване на наличните файлови дескриптори.

    Същността на извършената работа е да разшири функционалността на стандартния системен извикване futex() в ядрото на Linux с необходимите възможности за оптимална синхронизация на поточния пул. Патчове с необходимата поддръжка на флага FUTEX_WAIT_MULTIPLE са вече са предадени за включване в основния състав на ядрото на Linux и Glibc. Подготвените промени все още не са включени в основния състав на ядрото, затова в момента е необходимо да установят специално ядро с поддръжка на тези примитиви;

    Компанията Valve пусна Proton 4.11, пакет за стартиране на Windows игри в Linux
  • Слой DXVK (реализация на DXGI, Direct3D 10 и Direct3D 11 върху API Vulkan) е обновена до версия 1.3, а D9VK (експериментална реализация на Direct3D 9 върху Vulkan) до версия 0.13f. За да се включи поддръжката на D9VK в Proton, следва да се използва флаг PROTON_USE_D9VK;
  • Осигурена е предаване на текущата честота на опресняване на монитора на игри;
  • Внесени са корекции, свързани с обработката на фокуса на курсора на мишката и управлението на прозорците;
  • Премахнати са забавянията при въвеждане и проблемите с поддръжката на вибрации за джойстиците, проявяващи се в някои игри, особено в игрите на енджина Unity;
  • Добавена е поддръжка на последната версия на OpenVR SDK;
  • Компонентите FAudio с реализация на звуковите библиотеки DirectX (API XAudio2, X3DAudio, XAPO и XACT3) са обновени до версия 19.07;
  • Решени са проблемите с мрежовата подсистема в игрите на GameMaker;
  • Много модули на Wine вече се компилират като Windows PE файлове, вместо Linux библиотеки. С напредването на работата в тази област, използването на PE ще помогне на някои системи DRM и античити. В случай на прилагане на собствени компилации на Proton, най-вероятно ще е необходимо да се създаде виртуалната машина Vagrant отново, за да се изградят PE файлове.

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

При наличие на ядро с поддръжка на fsync, при стартиране на Proton 4.11 в конзолата ще се изведе съобщение «fsync: up and running». Принудително може да се изключи fsync, използвайки флага PROTON_NO_FSYNC=1.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster