Nel codice sorgente di Wine, su cui verrà basata la versione 10.15 tra una settimana, è stata aggiunta la supporto del driver ntsync, che consente un notevole aumento delle prestazioni nei 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 primitivi di sincronizzazione utilizzati nel kernel di Windows NT.
Un notevole aumento delle prestazioni si ottiene eliminando le spese generali associate all'uso di RPC nello spazio utente. Ad esempio, utilizzando il driver ntsync rispetto all'implementazione dei primitivi 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 i primitivi di sincronizzazione ottimizzati in Wine, è necessario abilitare il modulo del kernel ntsync, che è disattivato per impostazione predefinita. 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 assicurarti che ntsync funzioni correttamente, è necessario avviare qualcosa in Wine. Ad esempio, puoi semplicemente eseguire il comando «winecfg», dopodiché avviare «lsof /dev/ntsync» e verificare che nell'output siano presenti 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
