Valve выпустила новую ветку проекта Proton 4.11, который основан на разработках проекта Wine и направлен на обеспечение запуска на Linux игровых приложений, созданных для Windows и представленных в каталоге Steam. Разработки проекта распространяются по лицензии BSD. Как только они будут готовы, изменения, внесенные в Proton, переносятся в исходный Wine и связанные с ним проекты, такие как DXVK и vkd3d.
Proton позволяет запускать игры, доступные только для Windows, непосредственно в клиенте Steam Linux. . Пакет включает в себя реализацию DirectX 10/11 (на основе DXVK) и 12 (на основе vkd3d), работающую за счет преобразования вызовов DirectX в Vulkan API, обеспечивает улучшенную поддержку игровых контроллеров и возможность использования полноэкранного режима.
Основные новинки Proton 4.11
С выходом этой новой ветки, Proton перешел на синхронизацию с базовым кодом Wine 4.11, из которых было перенесено более 3300 изменений (предыдущая ветка была основана на Wine 4.2). 154 патча Proton 4.2 перемещены вверх по течению и теперь включены в основную часть Wine.
В качестве основной новинки разработчики подчеркивает добавление экспериментальной поддержки примитивов синхронизации на основе системного вызова futex (), что снижает нагрузку на ЦП по сравнению с esync.
Кроме того, новая реализация решает проблемы с необходимостью использования специальных настроек для esync и возможным исчерпанием доступных файловых дескрипторов.
Нашивки с держателем индикатора FUTEX_WAIT_MULTIPLE необходимые для Proton, уже перенесены для включения в основное ядро Linux и Glibc.
Подготовленные изменения еще не вошли в основной состав ядра, поэтому на данный момент необходимо установить специальное ядро с поддержкой этих примитивов.
Также слой DXVK (реализация DXGI, Direct3D 10 и Direct3D 11 поверх Vulkan API) Обновился до новой версии 1.3.
Пока для Д9ВК (экспериментальная реализация Direct3D 9 на Vulkan) до версии 0.13f. Чтобы включить поддержку D9VK в Proton, используйте флаг PROTON_USE_D9VK.
Многие модули Wine теперь создаются как файлы Windows PE.вместо библиотек Linux. По мере продвижения работы в этой области использование PE поможет некоторым DRM и античит-системам.
Из других изменений, которые выделяются в этой новой ветке:
- Предусмотрена передача текущей частоты обновления монитора в игры.
- Внесены исправления, связанные с обработкой курсора мыши и управлением окнами.
- Исправлены задержки ввода и проблемы с поддержкой вибрации для джойстиков, проявляющиеся в некоторых играх, особенно в играх на движке Unity.
- Добавлена поддержка последней версии OpenVR SDK.
- Компоненты FAudio с реализацией звуковой библиотеки DirectX (API XAudio2, X3DAudio, XAPO и XACT3) обновлены до версии 19.07.
- Исправлены проблемы с сетевой подсистемой в играх в GameMaker.
Перед применением патчей Valve в основном ядре Linux, чтобы использовать futex () вместо esync, должно быть установлено специальное ядро, поддерживающее пул синхронизации потоков реализован в наборе патчей fsync.
В Ubuntu 18.04 и 19.04 можно использовать репозиторий PPA. с экспериментальными ядрами linux-mfutex-valve
Что можно добавить с помощью следующих команд:
sudo add-apt-repository ppa:valve-experimental/kernel-bionic -y sudo apt-get install linux-mfutex-valve
Как активировать Proton в Steam?
Для этого Они должны открыть клиент Steam и нажать Steam в верхнем левом углу, а затем «Настройки».
В разделе «Учетная запись» вы найдете возможность зарегистрироваться для получения бета-версии. Выполнение этого и принятие закроют клиент Steam и загрузят бета-версию (новую установку).
В конце и после доступа к своей учетной записи они возвращаются к тому же маршруту, чтобы убедиться, что они уже используют Proton.