В кодовата база на Wine, от която следваща седмица ще бъде формулиран рендеринг 10.15, е добавена поддръжка на драйвера ntsync, който позволява значително увеличение на производителността на Windows игри, стартирани с помощта на Wine. Драйверът е част от ядрото на Linux от версия 6.14 насам и реализира символно устройство /dev/ntsync и набор от примитиви за синхронизация, използвани в ядрото на Windows NT.
Значителен ръст на производителността се постига благодарение на премахването на разходите, свързани с използването на 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, е необходимо да включите модула на ядрото 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
Източник: opennet.ru
