Кодовата база на 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
