Wineを使用してLinuxで3Dアプリケーションを実行できるDirect3D 10/11用のVulkanベースの翻訳レイヤー。
プロジェクトの現在のステータスについては、プロジェクトWikiを参照してください。
リリースページから取得したDXVKパッケージを特定のワインプレフィックスにインストールするには、DXVKディレクトリ内から次のコマンドを実行します。
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh install
これにより、DLLをWine Prefixのsystem32およびsyswow64ディレクトリにコピーし、必要なDLLオーバーライドをセットアップします。純粋な32ビットプレフィックスもサポートされています。
セットアップスクリプトは、オプションで次の引数を取ります。
--symlink :コピーする代わりに、DLLファイルへのシンボリックリンクを作成します。これは、開発に特に役立ちます。--without-dxgi :DXVKのDXGI実装をインストールせず、代わりにワインが提供するものを使用します。これは、VKD3DとDXVKの両方が同じワインプレフィックス内で動作するために必要です。アプリケーションのディレクトリにログファイルd3d11.logの存在を確認するか、HUDを有効にすることにより、アプリケーションがWined3dの代わりにDXVKを使用することを確認します(以下の注を参照)。
プレフィックスからDXVKを削除するには、次のコマンドを実行します。
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh uninstall
DXVKディレクトリ内で、実行してください。
./package-release.sh master /your/target/directory --no-package
これにより、 /your/target/directoryのフォルダーdxvk-masterが作成されます。これには、上記のようにリリースバージョンと同じ方法でセットアップできるDXVKの32ビットバージョンと64ビットバージョンの両方が含まれます。
開発のためのビルドディレクトリを保存するには、スクリプトに渡す--dev-buildを渡します。このオプションは--no-packageを意味します。ソースコードを変更した後、次のことを行い、DXVKを再構築できます。
# change to build.32 for 32-bit
cd /your/target/directory/build.64
ninja install
Winelibビルドは、 --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
D3D10、D3D11、およびDXGI DLLは/your/dxvk/directory/binに配置されます。この場合、セットアップを手動で実行する必要があります。
問題を報告する前に、現在のドライバーステータスのWikiページを確認し、ハードウェア用に最近のドライバーバージョンを実行していることを確認してください。
マルチプレイヤーゲームでのDirect3Dライブラリの操作は、不正行為と見なされる場合があり、アカウントを禁止することができます。これは、埋め込まれたマルチプレイヤー部分を備えたシングルプレイヤーゲームにも適用される場合があります。あなた自身の責任で使用してください。
DXVK_HUD環境変数は、フレームレートといくつかの統計カウンターを表示できるHUDを制御します。次のオプションのコンマ分離リストを受け入れます。
devinfo :GPUとドライバーバージョンの名前を表示します。fps :現在のフレームレートを示します。frametimes :フレームタイムグラフが表示されます。submissions :フレームごとに送信されたコマンドバッファーの数を表示します。drawcalls :ドローコールの数を表示し、フレームごとにパスをレンダリングします。pipelines :グラフィックスとコンピューティングパイプラインの総数を示します。memory :割り当てられて使用されるデバイスメモリの量を示します。gpuload :推定GPU負荷を示します。不正確である可能性があります。version :DXVKバージョンを表示します。api :アプリケーションで使用されるD3D機能レベルを示します。現時点では、D3D10では正しく機能しません。compiler :シェーダーコンパイラアクティビティを表示しますさらに、 DXVK_HUD=1 、 DXVK_HUD=devinfo,fps 、およびDXVK_HUD=fullと同じ効果を持ち、利用可能なすべてのHUD要素を有効にします。
一部のアプリケーションでは、別のGPUを選択する方法を提供しません。その場合、DXVKは特定のデバイスの使用を強制される可能性があります。
DXVK_FILTER_DEVICE_NAME="Device Name" vulkaninfoなどのツールで取得できる一致するVulkanデバイス名を持つデバイスを選択します。たとえば、デバイス名が「AMD RADV VEGA10(LLVM 9.0.0)」」の場合、「Vega」または「AMD RADV VEGA10」がサポートされているため、サブストリングの一致です。サブストリングが複数のデバイスと一致する場合、一致する最初のデバイスが使用されます。注:デバイスフィルターが誤って構成されている場合、すべてのデバイスをフィルタリングし、アプリケーションがD3Dデバイスを作成できない場合があります。
DXVKはパイプライン状態をデフォルトで状態にします。そのため、ドライバー自身のシェーダーキャッシュがその間に無効になった場合でも、アプリケーションの後続の実行でシェーダーを事前に再コンパイルできます。このキャッシュはデフォルトで有効になり、通常はutter音が減少します。
次の環境変数を使用して、キャッシュを制御できます。
DXVK_STATE_CACHE=0状態キャッシュを無効にします。DXVK_STATE_CACHE_PATH=/some/directoryキャッシュファイルを配置するディレクトリを指定します。デフォルトは、アプリケーションの現在の作業ディレクトリになります。次の環境変数は、デバッグの目的で使用できます。
VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation VULKAN DEBUGレイヤーを有効にします。レンダリングの問題とドライバーのクラッシュのトラブルシューティングに強くお勧めします。 Vulkan SDKをホストシステムにインストールする必要があります。DXVK_LOG_LEVEL=none|error|warn|info|debugコントロールメッセージロギング。DXVK_LOG_PATH=/some/directoryログファイルが保存されているパスを変更します。DXVK_CONFIG_FILE=/xxx/dxvk.conf構成ファイルへのパスを設定します。 DXVKには、MINGW-W64ビルド環境からのスレッドサポートが必要です。これを欠いている場合、「エラー:「Mutex」は「STD」のメンバーではない」が表示される場合があります。 DebianとUbuntuでは、通常、スレッドをサポートするPOSIX Alternateを使用して解決できます。たとえば、これらのコマンドから代替POSIXを選択します(32ビットにi686を使用してください):
update-alternatives --config x86_64-w64-mingw32-gcc
update-alternatives --config x86_64-w64-mingw32-g++