La version stable a été officiellement lancée le 21 janvier 2020 — un outil libre pour exécuter des programmes Windows natifs dans un environnement UNIX. Il s'agit d'une implémentation alternative et libre de l'API Windows. L'acronyme récursif WINE signifie "Wine Is Not an Emulator".
Cette version a nécessité environ un an de développement et plus de 7400 modifications distinctes. Le développeur principal, Alexandre Julliard, en souligne quatre :
- Prise en charge des modules au format PE. Cela résout les problèmes liés aux différentes schémas de protection contre la copie, qui vérifient les modules système sur le disque et en mémoire.
- Prise en charge de plusieurs moniteurs et de plusieurs GPU, y compris le changement dynamique des paramètres.
- Réimplémentation de XAudio2 basée sur le projet FAudio, une implémentation ouverte des bibliothèques sonores DirectX. Le passage à FAudio permet d'obtenir une meilleure qualité sonore dans les jeux, d'utiliser le mixage des volumes, des effets sonores avancés, etc.
- Prise en charge de Vulkan 1.1.
Plus de détails sur les principales nouveautés.
Modules PE
Avec un compilateur MinGW, la plupart des modules Wine sont désormais construits au format de fichiers exécutables PE (Portable Executable, format binaire Windows) au lieu de ELF.
Les fichiers exécutables PE sont maintenant copiés dans le répertoire ~/.wine au lieu d'utiliser des fichiers DLL fictifs, ce qui rend les applications plus semblables à de réelles installations Windows.
Tous les modules n'ont pas encore été convertis au format PE. Le travail se poursuit.
Sous-système graphique
Comme déjà mentionné, la prise en charge du fonctionnement avec plusieurs moniteurs et adaptateurs graphiques a été ajoutée.
Le pilote Vulkan a été mis à jour selon les spécifications Vulkan 1.1.126.
De plus, la bibliothèque WindowsCodecs prend désormais en charge des formats raster supplémentaires, y compris des formats avec palette indexée.
Direct3D
Les applications Direct3D en plein écran bloquent désormais l'appel de l'économiseur d'écran.
Pour les applications DXGI, une possibilité de basculement entre le mode plein écran et le mode fenêtré a été réalisée grâce à la combinaison standard Alt+Entrée.
Les fonctionnalités de Direct3D 12 ont été étendues : prise en charge de la commutation entre le mode plein écran et le mode fenêtré, changement de modes d'écran, affichage avec mise à l'échelle et intervalles de remplacement des tampons de rendu. Toutes ces fonctions avaient déjà été mises en œuvre pour les versions précédentes de l'API Direct3D.
Les participants au projet ont travaillé intensément et ont corrigé littéralement des centaines de bogues, améliorant ainsi le traitement de Wine concernant diverses situations limites. Parmi celles-ci, l'échantillonnage des ressources 2D dans les échantillonneurs 3D et vice versa, l'utilisation de valeurs d'entrée dépassant les plages autorisées pour les tests de transparence et de profondeur, le rendu avec des textures et des tampons réfléchissants, l'utilisation de clippeurs non valides (objet DirectDraw) et bien d'autres choses encore.
La taille de l'espace d'adressage nécessaire lors du chargement de textures 3D compressées par la méthode S3TC a été réduite (au lieu de charger complètement, les textures sont chargées par morceaux).
Pour les anciennes applications DirectDraw, diverses améliorations et corrections liées au calcul de l'éclairage ont été apportées.
La base de cartes graphiques reconnues dans Direct3D a été étendue.
Réseau et cryptographie
Le moteur Gecko a été mis à jour vers la version 2.47.1 pour prendre en charge les outils modernes. Un certain nombre de nouvelles API HTML ont été implémentées.
La prise en charge des éléments SVG a été ajoutée dans MSHTML.
De nombreuses nouvelles fonctionnalités de VBScript ont été ajoutées (par exemple, des gestionnaires d'erreurs et d'exceptions).
La possibilité d'obtenir des paramètres de configuration de proxy HTTP via DHCP a été mise en œuvre.
Dans la partie cryptographique, un support pour les clés cryptographiques basées sur des courbes elliptiques (ECC) via GnuTLS a été réalisé, avec la possibilité d'importer des clés et des certificats à partir de fichiers au format PFX, et le soutien au schéma de génération de clés basé sur le mot de passe PBKDF2 a été ajouté.
Adobe Photoshop CS6 sous Wine
Autres innovations significatives
- Prise en charge des spinlocks du noyau NT.
- Grâce à l'expiration du brevet sur la compression des textures DXTn et S3, il est désormais possible de les intégrer dans l'implémentation par défaut.
- Prise en charge de l'installation des pilotes plug-and-play.
- Diverses améliorations de DirectWrite.
- Meilleure prise en charge de l'API Windows Media Foundation.
- Meilleure synchronisation des primitives grâce à l'implémentation sur des futex.
- Partage de Wine-Mono pour économiser de l'espace au lieu d'une implémentation open source de .NET pour chaque instance.
~/.wine. - Prise en charge de Unicode 12.0 et 12.1.
- Mise en œuvre d'un service HTTP initial (HTTP.sys) en remplacement de l'API Winsock et d'IIS, entraînant des performances supérieures à celles de l'API Windows Sockets.
- Meilleure compatibilité avec les débogueurs Windows.
- Meilleure prise en charge de LLVM MinGW et améliorations pour la croisée compilation avec WineGCC.
On peut également mentionner les améliorations de l'interface utilisateur. Par exemple, les fenêtres réduites sont désormais affichées avec une barre de titre au lieu d'icônes à la manière de Windows 3.1. La prise en charge des manettes de jeu a été améliorée, y compris le chapeau, le volant et les pédales.
Les décodeurs AVI, MPEG-I et WAVE intégrés à Wine ont été supprimés, et sont maintenant remplacés par les systèmes GStreamer ou QuickTime.
Il est désormais possible d'utiliser le débogueur de Visual Studio pour le débogage à distance des applications exécutées sous Wine, la bibliothèque DBGENG (Debug Engine) a été partiellement implémentée, et la dépendance de libwine a été supprimée des fichiers compilés pour Windows.
Pour optimiser les performances, diverses fonctionnalités liées à la gestion du temps ont été adaptées pour utiliser des fonctions système de haute performance, ce qui a permis de réduire les surcharges dans la boucle de rendu de nombreux jeux. D'autres optimisations de performances ont également été réalisées.
Pour une liste complète des changements, voir. .
,
Sur le site une base de données des applications Windows compatibles avec Wine est maintenue. Voici les leaders en :
- Final Fantasy XI
- Adobe Photoshop CS6 (13.0)
- World of Warcraft 8.3.0
- EVE Online Current
- Magic: The Gathering Online 4.x
On peut supposer que ces applications sont les plus souvent lancées sous Wine.
Remarque. La version Wine 5.0 est dédiée à la mémoire de Józef Kucia, qui est tragiquement décédé en août 2019 à l'âge de 30 ans en explorant une grotte au sud de la Pologne. Józef a été un participant clé dans le développement de Direct3D pour Wine et un auteur principal du projet. Au cours de son travail sur Wine, il a contribué plus de 2500 correctifs.

Source : habr.com
