Valve verëffentlecht Proton 4.11, eng Suite fir Windows Spiller op Linux ze lafen

Ventil Company publizéiert новую ветку проекта Proton 4.11, baséiert op den Entwécklungen vum Wäinprojet a zielt fir de Start vu Spillapplikatiounen ze garantéieren, déi fir Windows erstallt ginn an am Steam Katalog op Linux presentéiert ginn. Projet Entwécklungen ausbreeden ënner BSD Lizenz. Wéi se prett sinn, ginn d'Verännerungen, déi am Proton entwéckelt goufen, op den urspréngleche Wäin a verbonne Projeten transferéiert, wéi DXVK a vkd3d.

Proton erlaabt Iech direkt Windows-nëmmen Spillapplikatiounen am Steam Linux Client ze lafen. De Package enthält eng Implementatioun vum DirectX 10/11 (baséiert op DXVK) an 12 (baséiert op vkd 3d), schafft duerch DirectX Uriff un d'Vulkan API, bitt verbessert Ënnerstëtzung fir Spillcontroller an d'Fäegkeet fir de Vollbildmodus ze benotzen onofhängeg vun den Écran Resolutiounen déi a Spiller ënnerstëtzt ginn. Am Verglach mam Original Wäin ass d'Leeschtung vu Multi-threaded Spiller wesentlech erhéicht ginn duerch d'Benotzung vu Patches "esync» (Eventfd Synchronization) или «futex/fsync».

Haaptstrooss изменения в Proton 4.11:

  • Выполнена синхронизация с кодовой базой Wine 4.11, из которой перенесено более 3300 изменений (прошлая ветка основывалась на wine 4.2). 154 патча из Proton 4.2 были перенесены upstream и теперь входят в основной состав Wine;
  • Добавлена экспериментальная поддержка примитивов синхронизации на основе системного вызова futex(), которая позволяет уменьшить нагрузку на CPU по сравнению с esync. Кроме того, новая реализация решает проблемы с необходимостью использования специальных настроек для esync и возможным исчерпанием доступных файловых дескрипторов.

    Суть проводимой работы в том, чтобы расширить функциональность штатного системного вызова futex() в ядре Linux возможностями, необходимыми для оптимальной синхронизации пула потоков. Патчи с необходимой для Proton поддержкой флага FUTEX_WAIT_MULTIPLE уже iwwerdroen для включения в основной состав ядра Linux и glibc. Подготовленные изменения пока не включены в основной состав ядра, поэтому на данный момент необходимо etabléieren специальное ядро с поддержкой данных примитивов;

    Valve verëffentlecht Proton 4.11, eng Suite fir Windows Spiller op Linux ze lafen

  • Interlayer DXVK (реализация DXGI, Direct3D 10 и Direct3D 11 поверх API Vulkan) обновлена до версии 1.3an 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 уже publizéiert готовый пакет ядра, собранный с патчами 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.

Source: opennet.ru

Setzt e Commentaire