Драйвер синхронизации Windows NT дает значительный прирост производительности Wine / Proton

Зеб Фигура (Zeb Figura) из CodeWeavers предложил примитивный драйвер синхронизации Windows NT для повышения производительности игр и приложений, разработанных для Windows, в Linux с Wine / Proton.

В RFC (request for comments), опубликованном в списке рассылки ядра Linux, Фигура отмечает: «Эта серия патчей представляет новый драйвер char misc, /dev/ntsync, который используется для реализации примитивов синхронизации Windows NT».

Затем он приводит некоторые сведения о нем:

«Проект Wine эмулирует Windows API в пользовательском пространстве. Одна конкретная часть этого часть API, а именно примитивы синхронизации NT, исторически была реализована через RPC к выделенному процессу «ядра». Однако последние приложения используют эти API более интенсивно, и накладные расходы на RPC стали узким местом.

API синхронизации NT слишком сложны, чтобы реализовать их поверх существующих примитивов без ущерба для корректности. Некоторые операции, такие как NtPulseEvent() или режим «ожидания всех»

NtWaitForMultipleObjects(), требуют прямого контроля над базовой очередью ожидания, а реализация очереди ожидания, достаточно надежной для Wine в пользовательском пространстве, невозможна. Поэтому предлагаемый драйвер реализует проблемные интерфейсы непосредственно в ядре Linux».

Какую разницу в производительности мы можем увидеть с подобным решением? Разница зависит от вашего оборудования и того, что вы пытаетесь запустить, но некоторые примеры FPS были приведены несколькими пользователями, включая:

Игра без драйвера ntsync Прирост FPS
Anger Foot 69 99 43%
Call of Juarez 99.8 224.1 125%
Dirt 3 110.6 860.7 678%
Forza Horizon 5 108 160 48%
Lara Croft: Temple of Osiris 141 326 131%
Metro 2033 164.4 199.2 21%
Resident Evil 2 26 77 196%
The Crew 26 51 96%
Tiny Tina’s Wonderlands 130 360 177%
Total War Saga: Troy 109 146 34%

На каком аппаратном и программном обеспечении тестировалась каждая игра, не указано.

Впечатляющие цифры, но, опять же, это зависит от аппаратного обеспечения, но даже в этом случае любой прирост производительности будет приветствоваться, так что надеемся, что серия патчей получит хорошие комментарии и одобрение после внесения всех необходимых изменений. Похоже, что в итоге мы можем увидеть значительное повышение производительности в играх на Linux ПК и Steam Deck с Wine и Proton.

Один мальчик подписался на телеграм-канал Игры в Linux и получил бесплатную игру в Steam! Новости из мира игр в Linux, свежие обзоры игр и полезные инструкции всегда под рукой!

Источник
Константин Дьяченко

Автор и основатель сайта Игры в Linux с 2010 года. Пользователь Linux с 2002. Старый злобный сисадмин с 1997.

Если Вам интересна тематика сайта и вы хотите каким-то образом поучаствовать в жизни сайта и его сообществ - напишите мне! Все контакты в разделе о сайте.

Игры в Linux
Добавить комментарий

Поля email и сайт не являются обязательными. Оставляя комментарий вы соглашаетесь с политикой конфиденциальности сайта.