Une version expérimentale de l'implémentation open source de l'API Win32 — Wine 9.2 a été publiée. Depuis la sortie de 9.1, 14 rapports de bogues ont été clos et 213 modifications ont été apportées.
Modifications les plus importantes :
- L'infrastructure Wine Mono avec la plateforme .NET a été mise à jour vers la version 9.0.0.
- Amélioration du support du système de notification.
- Sur les plateformes ARM, le traitement des exceptions a été amélioré.
- Lors de la compilation, le macro YEAR2038 a été utilisé pour le type 64 bits time_t.
- Dans le pilote winewayland.drv, le fonctionnement avec le curseur a été amélioré.
- Les rapports de bogues liés aux jeux suivants ont été fermés : Elite Dangerous, Epic Games Launcher 15.21.0, LANCommander, Kodu.
- Les rapports de bogues liés aux applications suivantes ont été fermés : Quick3270 5.21, digikam, Dolphin Emulator, Windows Sysinternals Process Explorer 17.05, Microsoft Webview 2 installer.
De plus, la version 5.0 de l'application Android Winlator a été publiée, fournissant une interface pour Wine et les émulateurs Box86/Box64 afin d'exécuter des applications Windows sur la plateforme Android. Winlator déploie des environnements Linux basés sur Ubuntu avec Mesa3D, DXVK, D8VK et CNC DDraw, dans lequel, grâce à l'émulateur et à Wine sur les dispositifs ARM avec Android, des applications Windows compilées pour l'architecture x86 peuvent être exécutées. La nouvelle version améliore la gestion des tâches, augmente les performances, ajoute le support de changement de thèmes et améliore la compatibilité avec XInput.
On peut également noter la publication dans la liste de diffusion du noyau Linux d'un pilote ntsync, implémentant un dispositif caractère /dev/ntsync et un ensemble de primitives pour la synchronisation, utilisés dans le noyau Windows NT. L'implémentation de ces primitives au niveau du noyau permet d'améliorer considérablement les performances des jeux Windows exécutés via Wine. Par exemple, en utilisant le pilote ntsync par rapport à l'implémentation des primitives de synchronisation NT en 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 %.
Une amélioration significative des performances est obtenue grâce à l'élimination des frais généraux liés à l'utilisation de RPC dans l'espace utilisateur. La création d'un pilote distinct pour le noyau Linux s'explique par la difficulté d'implémenter correctement l'API de synchronisation NT au-dessus des primitives existantes dans le noyau. Par exemple, l'opération NtPulseEvent() et le mode « wait-for-all » dans NtWaitForMultipleObjects() nécessitent une gestion directe de la file d'attente d'attente. Les correctifs avec le pilote ntsync sont pour l'instant en statut RFC, c'est-à-dire soumis à discussion et à révision par la communauté, mais ne sont pas encore envisagés pour inclusion dans le noyau Linux.
Source : opennet.ru
