Version stable de Wine 5.0

Après un an de développement et 28 versions expérimentales soumis version stable de l'implémentation ouverte de l'API Win32 - Vin 5.0, qui comprenait plus de 7400 2 modifications. Les principales réalisations de la nouvelle version incluent la livraison de modules Wine intégrés au format PE, la prise en charge des configurations multi-moniteurs, une nouvelle implémentation de l'API audio XAudio1.1 et la prise en charge de l'API graphique Vulkan XNUMX.

Dans le vin confirmé par le fonctionnement complet de 4869 (il y a un an 4737) programmes pour Windows, 4136 autres programmes (il y a un an 4045) fonctionnent parfaitement avec des paramètres supplémentaires et des DLL externes. 3635 XNUMX programmes présentent des problèmes de performances mineurs qui n’interfèrent pas avec l’utilisation des fonctions de base de l’application.

Clé les innovations Vin 5.0 :

  • Modules au format PE
    • Avec le compilateur MinGW, la plupart des modules Wine sont désormais construits au format de fichier exécutable PE (Portable Executable, utilisé sous Windows) au lieu d'ELF. L'utilisation de PE résout les problèmes liés à la prise en charge de divers schémas de protection contre la copie qui vérifient l'identité des modules système sur le disque et en mémoire ;
    • Les exécutables PE sont désormais copiés dans le répertoire ~/.wine ($WINEPREFIX) au lieu d'utiliser des fichiers DLL factices, ce qui les rend plus similaires aux installations réelles de Windows, au prix d'une consommation d'espace disque supplémentaire ;
    • Les modules convertis au format PE peuvent utiliser le standard wchar Fonctions et constantes C avec Unicode (par exemple, L"abc") ;
    • Le runtime Wine C a ajouté la prise en charge de la liaison avec les binaires construits dans MinGW, qui est utilisé par défaut à la place du runtime MinGW lors de la création de DLL ;
  • Sous-système graphique
    • Ajout de la prise en charge du travail avec plusieurs moniteurs et adaptateurs graphiques, y compris la possibilité de modifier dynamiquement les paramètres ;
    • Le pilote de l'API graphique Vulkan a été mis à jour pour se conformer à la spécification Vulkan 1.1.126 ;
    • La bibliothèque WindowsCodecs offre la possibilité de convertir des formats raster supplémentaires, y compris des formats avec une palette indexée ;
  • Direct3D
    • Lors de l'exécution d'applications Direct3D en plein écran, l'appel de l'économiseur d'écran est bloqué ;
    • DXGI (DirectX Graphics Infrastructure) a ajouté la prise en charge pour informer une application lorsque sa fenêtre est réduite, ce qui permet à l'application de réduire les performances des opérations gourmandes en ressources lors de la réduction de la fenêtre ;
    • Pour les applications utilisant DXGI, il est désormais possible de basculer entre le mode plein écran et fenêtré à l'aide de la combinaison Alt+Entrée ;
    • Les capacités de l'implémentation Direct3D 12 ont été étendues, par exemple, il est désormais possible de basculer entre les modes plein écran et fenêtré, de changer les modes d'écran, de mettre à l'échelle la sortie et de gérer l'intervalle de remplacement du tampon de rendu (intervalle d'échange) ;
    • Gestion améliorée de diverses situations limites, telles que l'utilisation de valeurs d'entrée hors plage pour les tests de transparence et de profondeur, le rendu avec des textures et des tampons réfléchis et l'utilisation d'objets DirectDraw incorrects. tondeuse, création de périphériques Direct3 pour des fenêtres incorrectes, utilisation de zones visibles dont les valeurs minimales des paramètres sont égales au maximum, etc.
    • Direct3D 8 et 9 offrent un suivi plus précis"sale» zones de textures chargées ;
    • La taille de l'espace d'adressage requis lors du chargement de textures 3D compressées à l'aide de la méthode S3TC a été réduite (au lieu de se charger entièrement, les textures sont chargées en morceaux).
    • Interface implémentée ID3D11Multithread pour protéger les sections critiques dans les applications multithread ;
    • Diverses améliorations et correctifs liés aux calculs d'éclairage ont été apportés aux anciennes applications DirectDraw ;
    • Implémentation d'appels supplémentaires pour obtenir des informations sur les shaders dans l'API ShaderRéflexion;
    • wined3d prend désormais en charge blitter Basé sur CPU pour le traitement des ressources compressées ;
    • La base de données des cartes graphiques reconnues dans Direct3D a été élargie ;
    • Ajout de nouvelles clés de registre HKEY_CURRENT_USER\Software\Wine\Direct3D : « shader_backend » (backend pour travailler avec les shaders : « glsl » pour GLSL, « arb » pour le sommet/fragment ARB et « none » pour désactiver la prise en charge des shaders), « strict_shader_math » ( 0x1 - activer, 0x0 - désactiver la conversion du shader Direct3D). La clé "UseGLSL" est obsolète (devrait utiliser "shader_backend");
  • D3DX
    • La prise en charge du mécanisme de compression de texture 3D S3TC (S3 Texture Compression) a été implémentée ;
    • Ajout d'implémentations correctes d'opérations telles que le remplissage de texture et les surfaces non cartographiables ;
    • Diverses améliorations et correctifs ont été apportés au cadre de création effets visuels;
  • Noyau (interfaces du noyau Windows)
    • La plupart des fonctions utilisées dans Kernel32 ont été déplacées vers
      KernelBase, suite aux évolutions de l'architecture Windows ;

    • Possibilité de mélanger des DLL 32 et 64 bits dans les répertoires utilisés pour le chargement. Garantit que les bibliothèques qui ne correspondent pas à la profondeur de bits actuelle sont ignorées (32/64), au cas où plus loin sur le chemin, il serait possible de trouver une bibliothèque qui soit correcte pour la profondeur de bits actuelle ;
    • Pour les pilotes de périphériques, l'émulation des objets du noyau a été améliorée ;
    • Implémentation d'objets de synchronisation fonctionnant au niveau du noyau, tels que des verrous tournants, des mutex rapides et des variables attachées à une ressource ;
    • Garantit que les applications sont correctement informées de l’état de la batterie ;
  • Interface utilisateur et intégration de bureau
    • Les fenêtres réduites sont désormais affichées à l'aide d'une barre de titre plutôt que d'une icône de style Windows 3.1 ;
    • Ajout de nouveaux styles de boutons SplitButton (bouton avec une liste déroulante d'actions) et Liens de commande (liens dans les boîtes de dialogue permettant de passer à l'étape suivante) ;
    • Des liens symboliques ont été créés pour les dossiers « Téléchargements » et « Modèles », pointant vers les répertoires correspondants sur les systèmes Unix ;
  • Dispositifs d'entrée
    • Au démarrage, les pilotes de périphériques Plug & Play nécessaires sont installés et chargés ;
    • Prise en charge améliorée des contrôleurs de jeu, notamment un mini-joystick (interrupteur à chapeau), un volant, des pédales d'accélérateur et de frein.
    • La prise en charge de l'ancienne API du joystick Linux utilisée dans les noyaux Linux antérieurs à la version 2.2 a été interrompue ;
  • .NET
    • Le moteur Mono a été mis à jour vers la version 4.9.4 et inclut désormais des parties du framework Windows Presentation Foundation (WPF) ;
    • Ajout de la possibilité d'installer des modules complémentaires avec Mono et Gecko dans un répertoire commun, en plaçant les fichiers dans la hiérarchie /usr/share/wine au lieu de les copier vers de nouveaux préfixes ;
  • Fonctionnalités de mise en réseau
    • Le moteur de navigation Wine Gecko, utilisé dans la bibliothèque MSHTML, a été mis à jour vers la version 2.47.1. La prise en charge des nouvelles API HTML a été implémentée ;
    • MSHTML prend désormais en charge les éléments SVG ;
    • Ajout de nombreuses nouvelles fonctions VBScript (par exemple, gestionnaires d'erreurs et d'exceptions, fonctions Hour, Day, Month, String, LBound, RegExp.Replace, РScriptTypeInfo_* et ScriptTypeComp_Bind*, etc.) ;
    • Préservation de l'état du code dans VBScript et JScript (persistance du script) ;
    • Ajout d'une implémentation initiale du service HTTP (WinHTTP) et de l'API associée (HTTPAPI) pour les applications client et serveur qui envoient et reçoivent des requêtes via le protocole HTTP ;
    • Implémentation de la possibilité d'obtenir les paramètres du proxy HTTP via DHCP ;
    • Ajout de la prise en charge de la redirection des demandes d'authentification via le service Microsoft Passport ;
  • Cryptographie
    • Prise en charge implémentée des clés cryptographiques à courbe elliptique (ECC) lors de l'utilisation de GnuTLS ;
    • Ajout de la possibilité d'importer des clés et des certificats à partir de fichiers au format PFX ;
    • Ajout de la prise en charge du schéma de génération de clé basé sur le mot de passe PBKDF2 ;
  • Texte et polices
    • L'implémentation de l'API DirectWrite a ajouté la prise en charge des fonctionnalités OpenType liées à positionnement des glyphes, qui sont activés par défaut pour le style latin, y compris le crénage ;
    • Sécurité améliorée pour le traitement des données de police en vérifiant l'exactitude des différents tableaux de données avant de les utiliser ;
    • Les interfaces DirectWrite ont été alignées sur le dernier SDK ;
  • Son et vidéo
    • Une nouvelle implémentation de l'API sonore a été proposée XAudio2, construit sur la base du projet FAudio. L'utilisation de FAudio dans Wine vous permet d'obtenir une qualité sonore supérieure dans les jeux et d'utiliser des fonctionnalités telles que le mixage du volume et les effets sonores avancés ;
    • Un grand nombre de nouveaux appels ont été ajoutés à la mise en œuvre du framework Media Foundation, notamment la prise en charge des files d'attente asynchrones intégrées et personnalisées, de l'API Source Reader, de la session multimédia, etc.
    • Le filtre de capture vidéo a été remplacé par l'API v4l2 au lieu de l'API v4l1, ce qui a élargi la gamme de caméras prises en charge ;
    • Les décodeurs intégrés AVI, MPEG-I et WAVE ont été supprimés, à la place desquels le système GStreamer ou QuickTime est désormais utilisé ;
    • Ajout d'un sous-ensemble d'API de configuration VMR7 ;
    • Ajout de la prise en charge du réglage du volume des canaux individuels aux pilotes audio ;
  • Internationalisation
    • Tableaux Unicode mis à jour vers la version 12.1.0 ;
    • Prise en charge implémentée de la normalisation Unicode ;
    • Fourni une installation automatique de la région géographique (HKEY_CURRENT_USER\Control Panel\International\Geo) en fonction des paramètres régionaux actuels ;
  • RPC/COM
    • Ajout de la prise en charge des structures et tableaux complexes à typelib ;
    • Ajout de l'implémentation initiale de la bibliothèque d'exécution Windows Script ;
    • Ajout de l'implémentation initiale de la bibliothèque ADO (Microsoft ActiveX Data Objects) ;
  • Installateurs
    • La prise en charge de la livraison de correctifs (fichiers de correctifs) a été implémentée pour le programme d'installation MSI ;
    • L'utilitaire WUSA (Windows Update Standalone Installer) a désormais la possibilité d'installer des mises à jour au format .MSU ;
  • Plateforme ARM
    • Pour l'architecture ARM64, la prise en charge du déroulement de la pile a été ajoutée à ntdll. Ajout de la prise en charge de la connexion des bibliothèques libunwind externes ;
    • Pour l'architecture ARM64, la prise en charge des proxys transparents a été implémentée pour les interfaces objets ;
  • Outils de développement / Winelib
    • Ajout de la possibilité d'utiliser le débogueur de Visual Studio pour déboguer à distance les applications exécutées dans Wine ;
    • La bibliothèque DBGENG (Debug Engine) a été partiellement implémentée ;
    • Les binaires compilés pour Windows ne dépendent plus de libwine, ce qui leur permet de s'exécuter sous Windows sans dépendances supplémentaires ;
    • Ajout de l'option « --sysroot » au compilateur de ressources et au compilateur IDL pour déterminer le chemin des fichiers d'en-tête ;
    • Ajout des options '—target', '—wine-objdir', '—wine-objdir' à winegcc
      « -winebuild » et « -fuse-ld », qui simplifient la configuration de l'environnement pour la compilation croisée ;

  • Applications embarquées
    • Implémentation d'un utilitaire CHCP pour configurer l'encodage de la console ;
    • L'utilitaire MSIDB de manipulation des bases de données au format MSI a été implémenté ;
  • Optimisation des performances
    • Diverses fonctions de synchronisation ont été migrées pour utiliser des fonctions de minuterie système hautes performances, réduisant ainsi la surcharge dans la boucle de rendu de nombreux jeux ;
    • Ajout de la possibilité d'utiliser Ext4 dans FS régime travailler sans sensibilité à la casse ;
    • Les performances de traitement d'un grand nombre d'éléments dans les boîtes de dialogue d'affichage de liste fonctionnant en mode LBS_NODATA ont été optimisées ;
    • Ajout d'une implémentation plus rapide des verrous SRW (Slim Reader/Writer) pour Linux, traduit en Futex ;
  • Dépendances externes
    • Pour assembler des modules au format PE, le compilateur croisé MinGW-w64 est utilisé ;
    • L'implémentation de XAudio2 nécessite la bibliothèque FAudio ;
    • Pour suivre les modifications de fichiers sur les systèmes BSD
      la bibliothèque Inotify est utilisée ;

    • Pour gérer les exceptions sur la plateforme ARM64, la bibliothèque Unwind est requise ;
    • Au lieu de Video4Linux1, la bibliothèque Video4Linux2 est désormais requise.

Source: opennet.ru

Ajouter un commentaire