Зеб Фигура (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.