En el código base de Wine, sobre el que se publicará la versión 10.15 en una semana, se ha añadido soporte para el controlador ntsync, que permite mejorar significativamente el rendimiento de los juegos de Windows ejecutados a través de Wine. El controlador forma parte del núcleo de Linux desde la versión 6.14 e implementa un dispositivo de caracteres /dev/ntsync y un conjunto de primitivas de sincronización utilizadas en el núcleo de Windows NT.
Se logra un aumento significativo en el rendimiento al eliminar los gastos generales asociados al uso de RPC en el espacio de usuario. Por ejemplo, al utilizar el controlador ntsync en comparación con la implementación de las primitivas de sincronización NT en el espacio de usuario, el FPS máximo en el juego Dirt 3 aumentó un 678%, en Resident Evil 2 aumentó un 196%, en Tiny Tina’s Wonderlands un 177%, en Lara Croft: Temple of Osiris un 131%, en Call of Juarez un 125%, en The Crew un 96%, en Forza Horizon 5 un 48% y en Anger Foot un 43%.
Para utilizar las primitivas de sincronización optimizadas en Wine, es necesario habilitar el módulo del núcleo ntsync, que está desactivado por defecto. Para activarlo, se puede añadir un archivo de configuración /etc/modules-load.d/ntsync.conf que contenga la línea «ntsync» y reiniciar el sistema o cargar manualmente el módulo con el comando «sudo modprobe ntsync». Se requiere un núcleo de Linux de al menos 6.14.
Para asegurarse de que ntsync está funcionando, es necesario ejecutar algo en Wine. Por ejemplo, simplemente se puede ejecutar el comando «winecfg», después ejecutar «lsof /dev/ntsync» y verificar que en la salida aparecen procesos de wine que utilizan ntsync. Por ejemplo: $ 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
Fuente: opennet.ru
