Nel codice sorgente di Wine, da cui verrà rilasciata la versione 10.15 tra una settimana, è stato aggiunto il supporto per il driver ntsync, che consente di migliorare significativamente le prestazioni dei giochi Windows eseguiti tramite Wine. Il driver è incluso nel kernel Linux a partire dalla versione 6.14 e implementa il dispositivo simbolico /dev/ntsync e un insieme di primitive per la sincronizzazione utilizzate nel kernel di Windows NT.
Un notevole incremento delle prestazioni si ottiene grazie all'eliminazione del sovraccarico associato all'uso di RPC nello spazio utente. Ad esempio, utilizzando il driver ntsync rispetto all'implementazione delle primitive di sincronizzazione NT nello spazio utente, il massimo FPS nel gioco Dirt 3 è aumentato del 678%, in Resident Evil 2 del 196%, in Tiny Tina’s Wonderlands del 177%, in Lara Croft: Temple of Osiris del 131%, in Call of Juarez del 125%, in The Crew del 96%, in Forza Horizon 5 del 48% e in Anger Foot del 43%.
Per utilizzare le primitive di sincronizzazione ottimizzate in Wine, è necessario abilitare il modulo del kernel ntsync, che è disabilitato di default. Per attivarlo, è possibile aggiungere un file di configurazione /etc/modules-load.d/ntsync.conf contenente la riga «ntsync» e riavviare il sistema oppure caricare manualmente il modulo con il comando «sudo modprobe ntsync». È richiesto almeno il kernel Linux 6.14.
Per verificare che ntsync stia effettivamente funzionando, è necessario eseguire qualcosa in Wine. Ad esempio, basta eseguire il comando «winecfg», quindi eseguire «lsof /dev/ntsync» e controllare che nell'output ci siano processi wine che utilizzano ntsync. Ad esempio: $ 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
Fonte: opennet.ru
