[ON] В Wine интегрирована начальная поддержка ntsync для повышения производительности игр

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6001
ОС: gnu/linux

[ON] В Wine интегрирована начальная поддержка ntsync для повышения производительности игр

Сообщение rssbot »

В кодовую базу Wine, на основе которой через неделю будет сформирован выпуск 10.15, добавлена начальная и пока неполная поддержка драйвера ntsync, позволяющего существенно поднять производительность Windows-игр, запускаемых при помощи Wine. Драйвер входит в состав ядра Linux начиная с выпуска 6.14 и реализует символьное устройство /dev/ntsync и набор примитивов для синхронизации, применяемых в ядре Windows NT. Сейчас на рассмотрении находится очередная и, по всей видимости, не последняя серия патчей, дополняющая поддержку ntsync в Wine, которая маловероятно, что успеет войти в состав Wine 10.15.


Значительный прирост производительности достигается благодаря избавлению от накладных расходов, связанных с применением RPC в пространстве пользователя. Например, при использовании драйвера ntsync по сравнению с реализацией примитивов синхронизации NT в пространстве пользователя максимальный FPS в игре Dirt 3 увеличился на 678%, в игре Resident Evil 2 - на 196%, Tiny Tina's Wonderlands - на 177%, Lara Croft: Temple of Osiris - на 131%, Call of Juarez - на 125%, The Crew - на 96%, Forza Horizon 5 - на 48%, Anger Foot - на 43% (замеры сделаны в сравнении с wine-sync, не с esync/fsync).




Для задействования оптимизированных примитивов синхронизации в Wine необходимо включить модуль ядра ntsync, который отключён по умолчанию. Для активации автозапуска модуля ntsync при каждом перезапуске системы, можно добавить файл конфигурации /etc/modules-load.d/ntsync.conf, содержащий строку "ntsync" и перезапустить систему. Или для однократного запуска вручную загрузить модуль командой "sudo modprobe ntsync", но в таком случае после перезапуска системы, модуль придётся запускать вручную каждый раз заново. Для работы требуется как минимум ядро Linux 6.14.


Чтобы убедиться, что ntsync действительно работает, необходимо что-нибудь запустить в Wine. Например, достаточно выполнить команду "winecfg", после чего запустить "lsof /dev/ntsync" и убедиться, что в выводе присутствуют запущенные сейчас процессы wine, использующие ntsync. Например:

Код:

$ lsof /dev/ntsync

COMMAND
PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
start.exe 658466 user 12r CHR 10,260
0t0 630 /dev/ntsync
services. 658474 user 11r CHR 10,260
0t0 630 /dev/ntsync
explorer. 658484 user 11r CHR 10,260
0t0 630 /dev/ntsync
winedevic 658499 user 10r CHR 10,260
0t0 630 /dev/ntsync
svchost.e 658552 user 10r CHR 10,260
0t0 630 /dev/ntsync
plugplay. 658557 user 10r CHR 10,260
0t0 630 /dev/ntsync
winedevic 658605 user 10r CHR 10,260
0t0 630 /dev/ntsync
conhost.e 658623 user 11r CHR 10,260
0t0 630 /dev/ntsync
winecfg.e 658625 user 11r CHR 10,260
0t0 630 /dev/ntsync


Источник: https://www.opennet.ru/opennews/art.shtml?num=63830
(opennet.ru, мини-новости)
Последний раз редактировалось rssbot 06.09.2025 21:31, всего редактировалось 1 раз.
Причина: Updated upstream
Спасибо сказали: