DXVK 2.5 dévoile une refonte majeure de la gestion de la mémoire pour un jeu plus fluide
DXVK 2.5 optimise la mémoire avec une défragmentation périodique, permettant une utilisation efficace des ressources pour de meilleures performances de jeu sans augmenter les coûts de VRAM.
DXVK, une couche de traduction basée sur Vulkan pour Direct3D 9, 10 et 11, principalement utilisée pour améliorer les performances et la compatibilité des jeux Windows sous Linux via Wine ou Proton, vient de publier sa dernière mise à jour, v2.5. Il regorge d’améliorations pour affiner la gestion des ressources et les performances globales du jeu. Jetons-y un coup d'œil.
La nouvelle version est livrée avec un système de gestion de mémoire entièrement repensé, conçu pour utiliser plus efficacement la mémoire vidéo allouée. Ce changement entraîne une réduction de la fragmentation de la mémoire, ce qui peut réduire considérablement l'utilisation maximale de la mémoire pour certains jeux. Par exemple, « God of War » peut voir jusqu'à 1 Gio de réduction de l'utilisation de la mémoire dans des scénarios extrêmes.
De plus, la défragmentation de la mémoire est désormais effectuée périodiquement pour restituer la mémoire inutilisée au système. Il ne s'agit pas d'une réduction drastique de la mémoire, mais plutôt d'une optimisation conservatrice qui intervient en cas de pression mémoire ou lorsqu'une quantité importante de mémoire inutilisée est détectée.
Cependant, il est important de noter que cette fonctionnalité de défragmentation est actuellement désactivée pour le pilote ANV d'Intel, bien que les utilisateurs puissent l'activer manuellement via le fichier de configuration.
Pour des résultats optimaux, la nouvelle gestion de la mémoire fonctionne mieux sur les pilotes prenant en charge à la fois VK_EXT_memory_budget et VK_KHR_maintenance5, ce qui garantit une fonctionnalité plus fluide dans les jeux. La page de support du pilote DXVK a été mise à jour en conséquence pour refléter cela.
Cette nouvelle version introduit également des améliorations aux jeux D3D8 et D3D9. DXVK 2.5 prend désormais en charge les curseurs émulés pour l'API du curseur D3D9, permettant aux jeux de définir n'importe quelle image arbitraire comme curseur. Cela corrige des problèmes de curseur de longue date dans des jeux tels que « Dungeon Siege 2 », « Act of War » et divers anciens jeux D3D8.
Une autre amélioration majeure concerne les jeux Unreal Engine 3 utilisant D3D9. Dans le passé, ces jeux pouvaient transmettre des valeurs apparemment non initialisées comme le biais de niveau de détail (LOD) du mipmap, conduisant à la création d'objets échantillonneurs Vulkan excessifs.
Pour résoudre ce problème, DXVK détruit désormais dynamiquement les échantillonneurs Vulkan inutilisés tout en garantissant que le biais LOD correct est utilisé, ce qui entraîne une précision visuelle améliorée. Cette nouvelle solution remplace l'ancienne solution de contournement qui arrondissait les valeurs de biais LOD, ce qui provoquait parfois des inexactitudes visuelles.
Du côté des corrections de bugs et des améliorations de performances, DXVK 2.5 apporte des améliorations pour divers jeux :
- Problèmes de rendu résolus : des titres tels que "Ascension to the Throne", "Command & Conquer: Generals", "King's Bounty: Warriors of the North" et "Tomb Raider: Legend" ont tous été ciblés. correctifs pour résoudre des problèmes de rendu spécifiques.
- Utilisateurs NVIDIA : pour les versions de pilote 565.57.01 et ultérieures, l'émulation flottante stricte est désormais activée par défaut pour améliorer l'exactitude. De plus, une amélioration potentielle des performances peut être constatée pour les jeux pour lesquels cette option est déjà activée.
- GPU mobiles : des modifications ont été apportées pour potentiellement améliorer les performances de certains GPU mobiles, ce qui devrait conduire à une expérience de jeu plus optimisée.
La gestion des ressources a également été considérablement remaniée pour les jeux D3D11 et DXGI. DXVK limite désormais la création, le téléchargement et la suppression de ressources pour réduire la pression sur la mémoire, ce qui est particulièrement important pour la stabilité des jeux 32 bits comme « Total War : Rome II ». De plus, les grandes textures DYNAMIQUES n'utiliseront plus de tampons de transfert, ce qui entraînera une utilisation plus efficace de la mémoire.
Cette mise à jour apporte également plusieurs corrections de bugs, notamment la mise en œuvre d'effets d'échange SEQUENTIAL pour les chaînes d'échange DXGI, la réduction des conflits de verrouillage dans certains jeux et la résolution de problèmes de rendu dans des jeux comme "Call of Duty: Modern Warfare 2 Campaign Remastered", "Diablo 4" et « Les Sims 4. »
Enfin, DXVK 2.5 introduit également un backend SDL3 pour dxvk-native, résout les erreurs de validation Vulkan dans plusieurs jeux et corrige les problèmes liés aux requêtes d'occlusion qui se chevauchent. De plus, la prise en charge de VK_EXT_pageable_device_local_memory est désormais incluse pour permettre une meilleure gestion de la mémoire côté pilote.
Pour plus d'informations sur toutes les modifications apportées à DXVK 2.5, visitez le journal des modifications.