Créé à l'origine pour Linux, DXVK peut également vous aider à "réparer" d'anciens jeux sous Windows et à améliorer leurs performances. Voici pourquoi et comment.
Direct3D fait partie des jeux Windows depuis des décennies, unifiant le paysage matériel PC segmenté sous un même parapluie compatible 3D. Cependant, une application créée principalement pour Linux, DXVK, est parfois une bien meilleure option à utiliser, même si vous êtes sous Windows.
Souhaitez-vous une meilleure compatibilité et, plus important encore, des performances pour vos applications et vos jeux? Ensuite, vous devez essayer DXVK.
Le problème avec DirectX sous Windows
Microsoft a créé DirectX comme une "solution unifiée" qui a aidé les programmeurs à utiliser les capacités matérielles de n'importe quel PC. Au lieu d'écrire un code différent pour chaque composant matériel, les développeurs de logiciels pourraient "cibler" les bibliothèques DirectDraw (graphiques 2D), Direct3D (3D accélérée par le matériel) et DirectSound (audio) de DirectX. Ensuite, laissez la solution de Microsoft "traduire" son code dans "la langue maternelle" de chaque composant matériel.
DirectX est devenu une technologie de base irremplaçable dans Windows et n'a cessé d'évoluer depuis. Cependant, il y a un petit hic avec Direct3D: il n'est pas rétrocompatible à 100 %.
Microsoft et les créateurs de GPU prenant en charge l'API Direct3D (comme dans "Nvidia, AMD et Intel"), ont a parfois abandonné la prise en charge des fonctionnalités introduites dans les versions antérieures de Direct3D mais qui n'ont jamais gagné traction. Ainsi, certains jeux plus anciens peuvent ne pas fonctionner correctement sur un GPU moderne avec les dernières versions de Direct3D.
Qu'est-ce que Vulkan?
Soi-disant une réponse plus "ouverte" au Direct3D à source fermée de Microsoft, OpenGL était une version mutée des bibliothèques graphiques 3D utilisées dans les stations de travail graphiques de Silicon Graphics.
OpenGL, cependant, était toujours en retard, en termes de fonctionnalités, par rapport à Direct3D de Microsoft. Finalement, il semblait plus rationnel de relancer l'effort. C'est pourquoi Vulkan, également connu sous le nom de "OpenGL Next", a été créé, offrant de meilleures performances et un contrôle accru sur le matériel.
Comme OpenGL, et contrairement à Direct3D lié à Windows de Microsoft, Vulkan est "ouvert" et multiplateforme. Vous pouvez utiliser Vulkan sur Windows, Linux et même les smartphones. Bien qu'il ne soit pas pris en charge de manière native sur les Mac, il est utilisable via MoltenVK.
C'était la version courte. Pour en savoir plus sur Vulkan, consultez notre article sur quelles sont les bibliothèques d'exécution Vulkan dans Windows.
Qu'est-ce que DXVK?
DXVK est un wrapper, "traduisant" Direct3D en Vulkan. Dans le monde humain, un traducteur peut être un médiateur entre un anglophone et un japonais, leur permettant de se comprendre. De même, les "wrappers", ou "couches de traduction", peuvent "prendre" du code écrit pour un matériel, une plate-forme ou une API spécifique, et le traduire pour qu'il s'exécute sur un autre.
DXVK a été initialement développé pour Linux avec le support de Valve, qui l'utilise également sur SteamOS et le Steam Deck. Vous pouvez en savoir plus à ce sujet dans notre article où nous avons vu qu'est-ce que Steam Proton et comment il exécute les jeux Windows sur Steam Deck.
Pourquoi devriez-vous utiliser DXVK sous Windows?
Si un jeu fonctionne déjà correctement sur votre matériel, il n'y a aucune raison d'utiliser DXVK. Mais certains jeux écrits pour les anciennes versions de DirectX ne fonctionnent pas "correctement" (voire pas du tout) sur les nouvelles versions de DirectX et le matériel moderne.
En "traduisant" le code Direct3D ancien et bogué dans l'API Vulkan plus moderne, il y a un impact minimal sur les performances (le cas échéant). Dans le même temps, les jeux problématiques avec des graphismes cassés ou des fonctionnalités manquantes peuvent redevenir entièrement jouables.
Étant donné que Vulkan est à égalité avec Direct3D 12, et les deux sont bien meilleurs (et plus rapides) que les anciennes versions de Direct3D (comme nous l'avons vu lorsque nous avons comparé DirectX 11 VS DirectX 12), "traduire" d'anciens jeux Direct3D vers Vulkan peut parfois améliorer les performances du jeu.
Le travail d'Intel sur leurs GPU Arc en est la preuve. Intel pourrait essayer d'ajouter la prise en charge de chaque titre plus ancien dans les pilotes Arc GPU. Au lieu de cela, Intel a décidé de travailler sur l'amélioration de DXVK. Les premiers résultats de "l'expérience" d'Intel ont permis de multiplier par deux les performances des anciens titres, avec des dizaines rendues jouables "via" DXVK.
Comment utiliser DXVK sous Windows
L'utilisation de DXVK sous Windows est facile, car il n'y a rien à modifier ou à configurer. Vous n'avez qu'à le télécharger, l'extraire dans le bon dossier d'un jeu, et il est prêt à l'emploi.
Cependant, vous devez utiliser la bonne version DXVK qui correspond à la version Direct3D utilisée par votre jeu.
Il est probablement plus facile si nous parcourons ensemble tout le processus pour voir comment vous pouvez télécharger la dernière version de DXVK, identifier la "technologie" de votre jeu et installer les bonnes DLL dans le dossier approprié.
Comment télécharger DXVK
DXVK est un logiciel open source et gratuit. Vous pouvez trouver sa dernière version sur GitHub.
- Visitez DXVK page officielle GitHub et cliquez sur le Dernier lien de version à droite de la page, sous Communiqués.
- Faites défiler vers le bas sur la page des versions et trouvez le Actifs section de la dernière version. Cliquez sur la dernière archive DXVK tar.gz pour la télécharger. Au moment de la rédaction, il s'agissait de la version 2.2.
- Stockez l'archive téléchargée quelque part, car vous devrez extraire son contenu dans le dossier de chaque jeu que vous souhaitez exécuter avec DXVK au lieu de Direct3D.
Comment choisir la bonne version DXVK
Si vous avez besoin de savoir quelle version de Direct3D votre jeu utilise, le site Web PC Gaming Wiki peut vous aider.
- Visite Wiki du jeu sur PC avec votre navigateur, et utilisez le champ de recherche en haut à droite pour rechercher le jeu auquel vous souhaitez ajouter DXVK.
- Lorsque vous trouvez votre jeu, visitez sa page et faites défiler vers le bas pour atteindre le les autres informations section. Portez votre attention sur les tables d'API. Là, sur le Spécifications techniques et Prise en charge colonnes, vous verrez la version de Direct3D utilisée par votre jeu. En dessous, le Exécutable, 32 bits, et 64 bits colonnes vous "diront" quelle architecture choisir.
Comment ajouter DXVK à vos jeux
Maintenant que vous savez quelle version de Direct3D et quelle architecture CPU votre jeu utilise, vous pouvez ajouter la bonne version de DXVK à son dossier.
- Ouvrez l'archive DXVK avec votre gestionnaire d'archives préféré (pour cet article, nous utilisons WinRAR) et entrez le dossier DXVK unique que vous y verrez.
- À l'intérieur, vous trouverez deux sous-dossiers, un pour chaque architecture d'ordinateur. Entrez le bon pour votre jeu. Même si votre système d'exploitation est en 64 bits, comme la plupart des versions de Windows aujourd'hui, si votre jeu est en 32 bits, vous devez opter pour le dossier 32 bits.
- Sélectionnez le DXGI.DLL ainsi que la DLL correcte pour la version de Direct3D votre jeu utilise. Comme vous le verrez, il existe trois autres DLL, une pour chacune des versions précédentes de Direct3D: 9, 10 et 11.
- Trouvez le dossier local où votre jeu est installé et localisez le sous-dossier avec son exécutable ("le fichier à partir duquel le jeu s'exécute"). Extrayez les DLL de l'étape précédente dans ce dossier.
Comment tester et comparer votre jeu amélioré
Si vous exécutez votre jeu maintenant, il devrait utiliser Vulkan au lieu de Direct3D et, espérons-le, mieux fonctionner.
Même si vous ne voyez pas de changements spectaculaires dans les fréquences d'images, les améliorations peuvent parfois être "ressenties" d'autres manières. Par exemple, nous avons essayé DXVK avec le classique Batman: Arkham City sur un PC équipé d'un Ryzen 5900x, de 64 Go de RAM et d'un GPU Nvidia RTX 3070. Notre matériel dépassait déjà les meilleures spécifications de cet ancien jeu, atteignant des fréquences d'images très élevées. Même s'ils montaient plus haut avec Vulkan, la différence ne serait pas facilement perceptible.
Cependant, l'action du jeu était plus fluide. Les transitions entre les écrans, les niveaux de chargement et la pression sur Alt + Tab étaient presque instantanées avec DXVK.
Quand vous ne devriez pas utiliser DXVK
DXVK présente de nombreux avantages et peut faire entrer les performances des jeux plus anciens dans l'ère moderne. Malgré cela, ce n'est pas une solution miracle pour améliorer les performances, et parfois cela ne vaut tout simplement pas la peine de l'utiliser.
1. DXVK n'améliore pas les performances du jeu
Si vous avez ajouté les DLL DXVK à votre jeu mais que vous n'avez vu aucune différence par la suite, vous pouvez les supprimer à nouveau si vous le souhaitez. Vous pouvez supprimer les DLL que vous avez ajoutées au dossier d'un jeu pour ce faire.
2. DXVK provoque une dégradation des performances ou introduit de nouveaux problèmes
Parfois, l'ajout de DXVK à un jeu peut avoir l'effet inverse. Malheureusement, l'utilisateur final n'a aucun moyen de résoudre ces problèmes.
Le réservoir de performances d'un jeu ou des problèmes visuels sont-ils apparus après l'ajout de DXVK? Quittez le jeu et supprimez les DLL du DXVK de son répertoire.
3. Vous voulez jouer votre jeu en ligne
DXVK est une couche de compatibilité et n'affecte que la sortie graphique d'un jeu. Pourtant, certaines entreprises s'opposent à toute modification de leurs jeux pour assurer un environnement équitable pour tous.
DXVK n'est peut-être pas une "tricherie", mais il s'agit toujours d'une "modification du jeu" et pourrait être signalé comme tel.
4. Le jeu a déjà un support Vulkan intégré
Si un jeu utilise déjà l'API Vulkan, comme Doom Eternal, il n'y a aucune raison de définir sa sortie sur Direct3D pour ensuite la traduire en Vulkan.
5. Le jeu utilise Direct3D 12
Étant donné que Direct3D 12 est presque entièrement à égalité avec Vulkan, il n'y a rien à gagner en traduisant une API graphique ultra-moderne en une autre.
Améliorez vos anciens jeux avec la 3D "traduite" sous Windows
Ce qui a commencé comme un moyen de jouer à plus de jeux liés à Windows sur Linux, a fini par devenir une solution de compatibilité utile et un booster de performances. Alors, gardez à portée de main une archive récente des DLL de DXVK. Ajoutez-les à n'importe quel jeu où vous souhaitez éliminer les problèmes, améliorer ses performances, obtenir une action plus fluide dans le jeu et améliorer sa réactivité.
Même si cela ne vous aide pas, l'essayer ne prendra que quelques secondes, et le plus souvent, vous pourriez être surpris par les résultats.