The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз Proton 4.11, пакета для запуска Windows-игр в Linux "
Отправлено opennews, 31-Июл-19 14:26 
Компания Valve опубликовала (https://steamcommunity.com/games/221410/announcements/detail...) новую ветку проекта Proton 4.11 (https://github.com/ValveSoftware/Proton/), основанного на наработках проекта  Wine и  нацеленного на обеспечение запуска в Linux  игровых приложений, созданных для Windows и представленных в каталоге Steam. Наработки проекта распространяются (https://github.com/ValveSoftware/Proton/) под лицензией BSD. По мере готовности в оригинальный Wine и сопутствующие проекты, такие как DXVK и vkd3d, переносятся развиваемые в Proton изменения.

Proton позволяет напрямую запускать  в Linux-клиенте Steam игровые приложения, поставляемые только для  Windows. Пакет включает в себя реализацию DirectX 10/11 (на базе DXVK (https://www.opennet.ru/opennews/art.shtml?num=50209)) и 12 (на базе vkd3d (https://www.opennet.ru/opennews/art.shtml?num=48648)), работающие через трансляцию вызовов DirectX в API Vulkan, предоставляет улучшенную поддержку игровых контроллеров и возможность использования полноэкранного режима независимо от поддерживаемых в играх разрешений экрана. По сравнению с оригинальным Wine значительно увеличена производительность многопоточных игр благодаря применению патчей "esync (https://www.opennet.ru/opennews/art.shtml?num=50475)" (Eventfd Synchronization) или "futex/fsync".

Основные изменения в Proton 4.11 (https://github.com/ValveSoftware/Proton/wiki/Changelog):


-  Выполнена синхронизация с кодовой базой  Wine 4.11, из которой перенесено более 3300 изменений (прошлая ветка основывалась на wine 4.2). 154 патча из Proton 4.2 были перенесены upstream и теперь входят в основной состав Wine;

-  Добавлена экспериментальная поддержка примитивов синхронизации на основе системного вызова futex(), которая позволяет уменьшить нагрузку на CPU по сравнению с esync. Кроме того, новая реализация решает проблемы с необходимостью использования специальных настроек (https://www.opennet.ru/opennews/art.shtml?num=50475) для esync и возможным исчерпанием доступных файловых дескрипторов.


Суть проводимой работы в том, чтобы расширить функциональность штатного системного вызова futex() в ядре Linux возможностями, необходимыми для оптимальной синхронизации пула потоков. Патчи с необходимой для Proton поддержкой флага FUTEX_WAIT_MULTIPLE уже переданы (https://lkml.org/lkml/2019/7/30/1399) для включения в основной состав ядра Linux и Glibc (https://github.com/Plagman/glibc/commit/3b01145fa25987f2f93e...). Подготовленные изменения пока не включены в основной состав ядра, поэтому на данный момент необходимо установить (https://steamcommunity.com/app/221410/discussions/0/31586310.../) специальное ядро с поддержкой данных примитивов;

-  Прослойка DXVK (https://github.com/doitsujin/dxvk/) (реализация DXGI, Direct3D 10 и Direct3D 11 поверх API Vulkan) обновлена до версии 1.3 (https://www.opennet.ru/opennews/art.shtml?num=51084), а D9VK (https://github.com/Joshua-Ashton/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 (https://gitlab.collabora.com/krisman/linux/commits/futex-wai...). Для  Arch Linux в AUR уже  опубликован (https://aur.archlinux.org/pkgbase/linux-fsync/) готовый пакет ядра, собранный с патчами 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.


URL: https://steamcommunity.com/games/221410/announcements/detail...
Новость: https://www.opennet.ru/opennews/art.shtml?num=51197

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру