Valve phát hành Proton 4.11, bộ ứng dụng chạy game Windows trên Linux

Công ty van được phát hành новую ветку проекта prôton 4.11, dựa trên sự phát triển của dự án Wine và nhằm mục đích đảm bảo ra mắt các ứng dụng chơi game được tạo cho Windows và được trình bày trong danh mục Steam trên Linux. Phát triển dự án lây lan theo giấy phép BSD. Khi chúng đã sẵn sàng, những thay đổi được phát triển trong Proton sẽ được chuyển sang Wine ban đầu và các dự án liên quan, chẳng hạn như DXVK và vkd3d.

Proton cho phép bạn chạy trực tiếp các ứng dụng chơi game chỉ dành cho Windows trong máy khách Steam Linux. Gói này bao gồm việc triển khai DirectX 10/11 (dựa trên phần mở rộng DXVK) và 12 (dựa trên vkd3d), hoạt động thông qua lệnh gọi DirectX tới API Vulkan, cung cấp khả năng hỗ trợ được cải thiện cho bộ điều khiển trò chơi và khả năng sử dụng chế độ toàn màn hình bất kể độ phân giải màn hình được hỗ trợ trong trò chơi. So với Wine gốc, hiệu suất chơi game đa luồng đã tăng lên đáng kể nhờ sử dụng các bản vá lỗi"đồng bộ hóa» (Eventfd Synchronization) или «futex/fsync».

Chính изменения в 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 уже chuyển nhượng для включения в основной состав ядра Linux и glibc. Подготовленные изменения пока не включены в основной состав ядра, поэтому на данный момент необходимо thiết lập специальное ядро с поддержкой данных примитивов;

    Valve phát hành Proton 4.11, bộ ứng dụng chạy game Windows trên Linux

  • Lớp xen kẽ phần mở rộng DXVK (реализация DXGI, Direct3D 10 и Direct3D 11 поверх API Vulkan) обновлена до версии 1.3D9VK (экспериментальная реализация 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 уже xuất bản готовый пакет ядра, собранный с патчами 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.

Nguồn: opennet.ru

Thêm một lời nhận xét