Dans la base de code de Wine, qui sera utilisée pour la version 10.15 dans une semaine, la prise en charge du pilote ntsync a été ajoutée, permettant d'améliorer considérablement les performances des jeux Windows exécutés via Wine. Ce pilote fait partie du noyau Linux depuis la version 6.14 et implémente un périphérique symbolique /dev/ntsync ainsi qu'un ensemble de primitives de synchronisation utilisées dans le noyau Windows NT.
Un gain de performance significatif est obtenu en éliminant les frais généraux liés à l'utilisation de RPC dans l'espace utilisateur. Par exemple, avec le pilote ntsync, par rapport à l'implémentation des primitives de synchronisation NT dans l'espace utilisateur, le FPS maximal dans le jeu Dirt 3 a augmenté de 678 %, dans Resident Evil 2 de 196 %, dans Tiny Tina’s Wonderlands de 177 %, dans Lara Croft: Temple of Osiris de 131 %, dans Call of Juarez de 125 %, dans The Crew de 96 %, dans Forza Horizon 5 de 48 %, et dans Anger Foot de 43 %.
Pour utiliser les primitives de synchronisation optimisées dans Wine, il est nécessaire d'activer le module noyau ntsync, qui est désactivé par défaut. Pour l'activer, vous pouvez ajouter un fichier de configuration /etc/modules-load.d/ntsync.conf, contenant la ligne « ntsync » et redémarrer le système ou charger manuellement le module avec la commande « sudo modprobe ntsync ». Un noyau Linux 6.14 ou supérieur est requis.
Pour s'assurer que ntsync fonctionne réellement, il est nécessaire de lancer quelque chose dans Wine. Par exemple, il suffit d'exécuter la commande « winecfg », puis de lancer « lsof /dev/ntsync » et de s'assurer que le résultat contient des processus wine utilisant ntsync. Par exemple : $ 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
Source : opennet.ru
