Eine vulkanbasierte Übersetzungsschicht für Direct3D 10/11, mit der 3D-Anwendungen auf Linux mit Wein ausgeführt werden können.
Informationen zum aktuellen Status des Projekts finden Sie im Projekt Wiki.
Um ein DXVK -Paket zu installieren, das von der Release -Seite in ein bestimmtes Weinpräfix erhalten wurde, führen Sie die folgenden Befehle aus dem DXVK -Verzeichnis aus:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh install
Dadurch werden die DLLs in die Verzeichnisse system32 und syswow64 Ihres Weinpräfixes kopiert und die erforderlichen DLL -Überschreibungen eingerichtet. Pure 32-Bit-Präfixe werden ebenfalls unterstützt.
Das Setup -Skript nimmt optional die folgenden Argumente an:
--symlink : Erstellen Sie symbolische Links zu den DLL-Dateien, anstatt sie zu kopieren. Dies ist besonders nützlich für die Entwicklung.--without-dxgi : Installieren Sie die DXGI-Implementierung von DXVK und verwenden Sie stattdessen die von Wine bereitgestellte. Dies ist erforderlich, damit sowohl VKD3D als auch DXVK innerhalb desselben Weinpräfixes arbeiten können. Stellen Sie sicher, dass Ihre Anwendung DXVK anstelle von Wined3D verwendet, indem Sie nach dem Vorhandensein der Protokolldatei d3d11.log im Verzeichnis der Anwendung oder durch Aktivieren des HUD (siehe Hinweise unten) überprüft.
Um DXVK aus einem Präfix zu entfernen, führen Sie den folgenden Befehl aus:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh uninstall
Rennen Sie im DXVK -Verzeichnis:
./package-release.sh master /your/target/directory --no-package
Dadurch wird ein Ordner dxvk-master in /your/target/directory erstellt, der sowohl 32-Bit- als auch 64-Bit-Versionen von DXVK enthält.
Um die Entwicklungsverzeichnisse für die Entwicklung zu erhalten, können Sie --dev-build an das Skript. Diese Option impliziert --no-package . Nachdem Sie Änderungen am Quellcode vorgenommen haben, können Sie Folgendes durchführen, um DXVK wieder aufzubauen:
# change to build.32 for 32-bit
cd /your/target/directory/build.64
ninja install
Ein Winelib -Build kann erstellt werden, indem das Argument --winelib -Argument hinzugefügt wird.
# 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
Die D3D10-, D3D11- und DXGI -DLLs befinden sich in /your/dxvk/directory/bin . Das Setup muss in diesem Fall manuell durchgeführt werden.
Bevor Sie ein Problem melden, überprüfen Sie bitte die Wiki -Seite im aktuellen Treiberstatus und stellen Sie sicher, dass Sie eine kürzlich ausreichende Treiberversion für Ihre Hardware ausführen.
Die Manipulation von Direct3D-Bibliotheken in Multi-Player-Spielen kann als Betrug angesehen werden und Ihr Konto verboten . Dies kann auch für Single-Player-Spiele mit einem eingebetteten oder dedizierten Multiplayer-Teil gelten. Verwenden Sie auf eigenes Risiko.
Die Umgebungsvariable DXVK_HUD steuert einen HUD, mit dem die Framerate- und einige Stat -Zähler angezeigt werden können. Es akzeptiert eine von Kommas getrennte Liste der folgenden Optionen:
devinfo : Zeigt den Namen der GPU und der Treiberversion an.fps : Zeigt die aktuelle Bildrate an.frametimes : Zeigt ein Frame -Zeit -Diagramm an.submissions : Zeigt die Anzahl der pro Rahmen eingereichten Befehlspuffer an.drawcalls : Zeigt die Anzahl der Ziehanrufe und Render -Pässe pro Rahmen an.pipelines : Zeigt die Gesamtzahl der Grafiken und Berechnung von Pipelines an.memory : Zeigt die Menge an Gerätemachspeicher an und verwendet.gpuload : zeigt die geschätzte GPU -Last an. Kann ungenau sein.version : Zeigt die DXVK -Version an.api : Zeigt die von der Anwendung verwendete D3D -Funktionsebene an. Funktioniert für D3D10 momentan nicht richtig.compiler : zeigt Shader Compiler -Aktivität Zusätzlich hat DXVK_HUD=1 den gleichen Effekt wie DXVK_HUD=devinfo,fps und DXVK_HUD=full Aktivierung aller verfügbaren HUD -Elemente.
Einige Anwendungen bieten keine Methode zur Auswahl einer anderen GPU. In diesem Fall kann DXVK gezwungen werden, ein bestimmtes Gerät zu verwenden:
DXVK_FILTER_DEVICE_NAME="Device Name" wählt Geräte mit einem passenden Vulkan -Gerätenamen aus, der mit Tools wie vulkaninfo abgerufen werden kann. Übereinstimmungen an Untergräben, also wird "VEGA" oder "AMD RADV VEGA10" unterstützt, wenn der vollständige Gerätename "AMD Radv VEGA10 (LLVM 9.0.0)" lautet. Wenn das Substring mehr als ein Gerät übereinstimmt, wird das erste Gerät übereinstimmt.Hinweis: Wenn der Gerätefilter falsch konfiguriert ist, kann er alle Geräte herausfiltern und Anwendungen können kein D3D -Gerät erstellen.
DXVK Caches Pipeline -Status standardmäßig, damit Shader mit nachfolgenden Ausführungen einer Anwendung im Voraus neu kompilieren können, auch wenn der eigene Shader -Cache des Fahrers in der Zwischenzeit ungültig wurde. Dieser Cache ist standardmäßig aktiviert und reduziert im Allgemeinen das Stottern.
Die folgenden Umgebungsvariablen können verwendet werden, um den Cache zu steuern:
DXVK_STATE_CACHE=0 deaktiviert den Status -Cache.DXVK_STATE_CACHE_PATH=/some/directory gibt ein Verzeichnis an, in dem die Cache -Dateien eingestellt werden sollen. Standardeinstellungen zum aktuellen Arbeitsverzeichnis der Anwendung.Die folgenden Umgebungsvariablen können zum Debugging -Zweck verwendet werden.
VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation ermöglicht Vulkan -Debug -Schichten. Sehr zu empfehlen, um Probleme mit der Fehlerbehebung und zur Stürze des Fahrers zu beheben. Erfordert, dass der Vulkan SDK auf dem Host -System installiert wird.DXVK_LOG_LEVEL=none|error|warn|info|debug -Protokollierung.DXVK_LOG_PATH=/some/directory ändert Pfad, wo Protokolldateien gespeichert werden.DXVK_CONFIG_FILE=/xxx/dxvk.conf setzt den Pfad zur Konfigurationsdatei. DXVK erfordert Threading-Unterstützung in Ihrer Mingw-W64-Build-Umgebung. Wenn Ihnen dies fehlt, sehen Sie möglicherweise "Fehler:" Mutex "kein Mitglied von 'std'". Bei Debian und Ubuntu kann dies normalerweise durch die Verwendung des POSIX -Alternatives gelöst werden, das das Threading unterstützt. Wählen Sie beispielsweise die POSIX-Alternative aus diesen Befehlen aus (verwenden Sie i686 für 32-Bit):
update-alternatives --config x86_64-w64-mingw32-gcc
update-alternatives --config x86_64-w64-mingw32-g++