Une couche de traduction basée sur Vulkan pour Direct3D 10/11 qui permet d'exécuter des applications 3D sur Linux en utilisant du vin.
Pour l'état actuel du projet, veuillez vous référer au Wiki du projet.
Afin d'installer un package DXVK obtenu à partir de la page de libération dans un préfixe de vin donné, exécutez les commandes suivantes à partir du répertoire DXVK:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh install
Cela copiera les DLL dans les répertoires system32 et syswow64 de votre préfixe de vin et configurez les remplacements DLL requis. Les préfixes 32 bits purs sont également pris en charge.
Le script de configuration prend éventuellement les arguments suivants:
--symlink : Créez des liens symboliques vers les fichiers DLL au lieu de les copier. Ceci est particulièrement utile pour le développement.--without-dxgi : N'installez pas l'implémentation DXGI de DXVK et utilisez à la place celui fourni par Wine. Ceci est nécessaire pour que VKD3D et DXVK fonctionnent dans le même préfixe de vin. Vérifiez que votre application utilise dxvk au lieu de Wined3d en vérifiant la présence du fichier journal d3d11.log dans le répertoire de l'application, ou en activant le HUD (voir les notes ci-dessous).
Afin de supprimer DXVK d'un préfixe, exécutez la commande suivante:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh uninstall
À l'intérieur du répertoire DXVK, exécutez:
./package-release.sh master /your/target/directory --no-package
Cela créera un dossier dxvk-master dans /your/target/directory , qui contient à la fois des versions 32 bits et 64 bits de DXVK, qui peuvent être configurées de la même manière que les versions de version que ci-dessus.
Afin de préserver les répertoires de construction pour le développement, passez --dev-build au script. Cette option implique --no-package . Après avoir apporté des modifications au code source, vous pouvez ensuite effectuer ce qui suit pour reconstruire DXVK:
# change to build.32 for 32-bit
cd /your/target/directory/build.64
ninja install
Une version de Winelib peut être créée en ajoutant l'argument --winelib .
# 64-bit build. For 32-bit builds, replace
# build-win64.txt with build-win32.txt
meson --cross-file build-win64.txt --buildtype release --prefix /your/dxvk/directory build.w64
cd build.w64
ninja install
Les DLL D3D10, D3D11 et DXGI seront situées dans /your/dxvk/directory/bin . La configuration doit être effectuée manuellement dans ce cas.
Avant de signaler un problème, veuillez consulter la page Wiki sur l'état actuel du pilote et assurez-vous d'exécuter une version suffisamment récente du pilote pour votre matériel.
La manipulation des bibliothèques Direct3D dans les jeux multi-joueurs peut être considérée comme de la tricherie et peut interdire votre compte. Cela peut également s'appliquer aux jeux solo avec une partie multijoueur intégrée ou dédiée. Utiliser à vos risques et périls.
La variable de l'environnement DXVK_HUD contrôle un HUD qui peut afficher le framerate et certains compteurs de statistiques. Il accepte une liste séparée par des virgules des options suivantes:
devinfo : affiche le nom du GPU et la version du pilote.fps : montre la fréquence d'images actuelle.frametimes : montre un graphique de temps d'image.submissions : montre le nombre de tampons de commande soumis par trame.drawcalls : montre le nombre d'appels de dessin et de laissez-passer par trame.pipelines : montre le nombre total de graphiques et de pipelines de calcul.memory : montre la quantité de mémoire de périphérique allouée et utilisée.gpuload : montre une charge de GPU estimée. Peut être inexact.version : Affiche la version DXVK.api : montre le niveau de fonctionnalité D3D utilisé par l'application. Ne fonctionne pas correctement pour D3D10 pour le moment.compiler : montre l'activité du compilateur shader De plus, DXVK_HUD=1 a le même effet que DXVK_HUD=devinfo,fps et DXVK_HUD=full active tous les éléments HUD disponibles.
Certaines applications ne fournissent pas de méthode pour sélectionner un GPU différent. Dans ce cas, DXVK peut être obligé d'utiliser un dispositif donné:
DXVK_FILTER_DEVICE_NAME="Device Name" sélectionne les périphériques avec un nom de périphérique Vulkan correspondant, qui peut être récupéré avec des outils tels que vulkaninfo . Correspond aux sous-chaînes, donc "Vega" ou "AMD RADV VEGA10" est pris en charge si le nom complet du périphérique est "AMD RADV VEGA10 (LLVM 9.0.0)", par exemple. Si la sous-chaîne correspond à plusieurs périphériques, le premier appareil correspondant sera utilisé.Remarque: Si le filtre de périphérique est configuré de manière incorrecte, il peut filtrer tous les périphériques et les applications ne seront pas en mesure de créer un périphérique D3D.
DXVK Caches Pipeline State par défaut, afin que les shaders puissent être recompilés à l'avance lors des exécutions ultérieures d'une application, même si le cache de shader du pilote a été invalidé entre-temps. Ce cache est activé par défaut et réduit généralement le bégaiement.
Les variables d'environnement suivantes peuvent être utilisées pour contrôler le cache:
DXVK_STATE_CACHE=0 désactive le cache d'état.DXVK_STATE_CACHE_PATH=/some/directory Spécifie un répertoire où mettre les fichiers de cache. Par défaut, le répertoire de travail actuel de l'application.Les variables d'environnement suivantes peuvent être utilisées à des fins de débogage .
VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation Active les couches de débogage vulkan. Hautement recommandé pour le dépannage des problèmes de rendu et des accidents de pilote. Nécessite l'installation du SDK Vulkan sur le système hôte.DXVK_LOG_LEVEL=none|error|warn|info|debug des contrôles de la journalisation du message.DXVK_LOG_PATH=/some/directory modifie le chemin d'accès où les fichiers journaux sont stockés.DXVK_CONFIG_FILE=/xxx/dxvk.conf Définit le chemin du fichier de configuration. DXVK nécessite un support de filetage à partir de votre environnement de construction MingW-W64. Si vous manquez cela, vous pouvez voir "Erreur: 'mutex' n'est pas un membre de 'std'". Sur Debian et Ubuntu, cela peut généralement être résolu en utilisant l'alternative POSIX, qui prend en charge le filetage. Par exemple, choisissez l'alternative POSIX dans ces commandes (utilisez i686 pour 32 bits):
update-alternatives --config x86_64-w64-mingw32-gcc
update-alternatives --config x86_64-w64-mingw32-g++