In de codebasis van Wine, waarop over een week release 10.15 zal worden gevormd, is ondersteuning voor de ntsync-driver toegevoegd, waarmee de prestaties van Windows-games die via Wine worden uitgevoerd, aanzienlijk kunnen worden verhoogd. De driver maakt deel uit van de Linux-kernel vanaf versie 6.14 en implementeert het symbolische apparaat /dev/ntsync en een reeks primitieve synchronisatiemechanismen die in de Windows NT-kernel worden toegepast.
Een significante prestatieverbetering wordt bereikt door het elimineren van overhead die samenhangt met het gebruik van RPC in de gebruikersruimte. Bijvoorbeeld, bij het gebruik van de ntsync-driver in vergelijking met de implementatie van synchronisatiemechanismen van NT in de gebruikersruimte, is de maximale FPS in het spel Dirt 3 toegenomen met 678%, in Resident Evil 2 met 196%, Tiny Tinaās Wonderlands met 177%, Lara Croft: Temple of Osiris met 131%, Call of Juarez met 125%, The Crew met 96%, Forza Horizon 5 met 48% en Anger Foot met 43%.
Om de geoptimaliseerde synchronisatieprimitieven in Wine te gebruiken, moet de ntsync-kernelmodule worden ingeschakeld, die standaard is uitgeschakeld. Om deze te activeren, kan een configuratiebestand /etc/modules-load.d/ntsync.conf worden toegevoegd, dat de regel "ntsync" bevat en het systeem moet opnieuw worden opgestart, of de module kan handmatig worden geladen met het commando "sudo modprobe ntsync". Voor gebruik is ten minste Linux-kernel 6.14 vereist.
Om te verifiƫren dat ntsync daadwerkelijk werkt, moet er iets in Wine worden gestart. Voer bijvoorbeeld gewoon het commando "winecfg" uit, start daarna "lsof /dev/ntsync" en controleer of processen van wine die ntsync gebruiken in de uitvoer aanwezig zijn. Bijvoorbeeld: $ 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
Bron: opennet.ru
