Wine:DXVK

DXVK
# DXVK
https://github.com/doitsujin/dxvk

DXVK は、低レベルの 3D API「Vulkan」を使って、DirectX 9/10/11 の 3D を実装します。
d3d9.dll など、DirectX の DLL を置き換えて使います。

Wine 3.10 以降、かつ Vulkan をサポートした GPU があれば、DXVK を使うことによって、Vulkan による 3D 描画を行うことができます。

Wine 上で OpenGL を使うのと比べると、処理速度が速くなり、通常の Wine で動かないような 3D ゲームを動かせることがありますが、Vulkan に対応していない環境では動かすことができません。

Intel CPU では、Broadwell 以降で対応しています。
インストール
Vulkan ドライバ
まず、環境に合わせて、別途 Vulkan のドライバ等をインストールする必要があります。

Arch Linux以下を参考に、インストールしてください。
https://wiki.archlinux.jp/index.php/Vulkan
UbuntuUbuntu 環境では試していないので、「ubuntu vulkan」などで検索してみてください。
DXVK のダウンロード
リリースから、作成済みの dll ファイルをダウンロードしてください。

https://github.com/doitsujin/dxvk/releases
dll のインストール
リリースファイルには、Wine prefix 上に dll をインストールするためのシェルスクリプト、setup_dxvk.sh が含まれています。
これを使うと、簡単にインストールできます。

$ env WINEPREFIX=[dir] ./setup_dxvk.sh install


このスクリプトでは、以下の処理が行われています。

  1. Wine prefix の更新
  2. 元の dll のバップアップ作成
  3. dll をコピー
  4. Wine の dll 置き換えを設定

基本的には、dll をコピーして、dll 置き換え設定を行えば良いので、手動で行っても構いません。
dxvk.conf
DXVK の動作に関する詳細設定は、dxvk.conf に記述します。

実行ファイルと同じ場所に dxvk.conf を置くか、環境変数 DXVK_CONFIG_FILE でファイルパスを指定します。

設定項目については、GitHub 上の dxvk.conf ファイルを見てください。
環境変数
環境変数で各種設定を行うこともできます。
以下、一部の値を抜粋しています。

DXVK_HUD=[name,name...]画面上に、各情報を出力します。
devinfo,fps,frametimes,memory,version,api など。
カンマで区切って複数指定可。
DXVK_STATE_CACHE_PATH=[dir]シェーダのキャッシュファイルが作成されるディレクトリの指定。
デフォルトで、カレントディレクトリ。
DXVK_LOG_LEVEL=[name]ログファイルに出力する情報を指定。
none, error, warn, info, debug
DXVK_LOG_PATH=[dir]ログファイルが作成されるディレクトリの指定。
デフォルトで、カレントディレクトリ。
DXVK_CONFIG_FILE=[file path]設定ファイル (dxvk.conf) のパスを指定。

キャッシュやログファイルは、デフォルトでカレントディレクトリに作成されるので、任意の場所にしたい場合は、環境変数で設定してください。