
数日前に発表された DXVK 2.7の新バージョンのリリースどれ Vulkanの改良点を紹介 拡張機能とドライバーの両方に加え、VRAM 管理の改善、互換性の修正なども含まれます。
DXVKについて知らない人のために、知っておくべきことがあります Wineを使用してLinux上で3Dアプリケーションやゲームを実行するために使用できます。 OpenGL上で動作するWineベースのDirect3D 11実装よりも高性能な代替手段として機能します。一部のゲームでは、Wine + DXVKパッケージのパフォーマンスはWindows版とわずか10~20%しか変わりませんが、OpenGLベースのDirect3D 11実装を使用すると、パフォーマンスはより大幅に低下します。
DXVK2.7の主な新機能
DXVK 2.7の主な変更点のXNUMXつは、 VK_KHR_maintenance5拡張機能の設定 必須要件として。これは、 ドライバーはVulkan 1.3を完全にサポートする必要があります。 結果として、 DXVK は古いバージョンのドライバーでは動作しなくなります。 AMD および Intel GPU (RADV および ANV)、または NVIDIA ドライバー 25.0 には Mesa 550.54.14 が必要です。
この変化 これは特に、AMD Polaris および Vega グラフィック カードを搭載した Windows ユーザーに影響します。はAMDによる公式サポートが終了しました。このリリース以降、DXVKではAMDドライバーを搭載したWindowsプラットフォームの使用は自己責任とみなされます。
DXVK 2.7のもう一つの新機能は、 シェーディング記述子システムの近代化AMDまたはNVIDIA GPU搭載DXVKはデフォルトでVK_EXT_descriptor_buffer拡張を有効にしますは、CPUがグラフィックリソースを管理する作業を大幅に削減する技術です。この改善により、 要求の厳しいゲームでは目に見えるパフォーマンスの向上につながります、特に CPUがボトルネックとなっているシステムではこの最適化を無効にしたい人のために、dxvk.enableDescriptorBuffer オプションが含まれています。
DXVK2.7 メモリ使用量も改善され、 インテルカード BattlemageとLunar Lakeでは、メモリのデフラグ機能が有効になっています これにより、長時間のゲームセッション中のRAM使用量のピークが軽減され、オペレーティングシステムにより多くのリソースが返されます。この機能は、dxvk.enableMemoryDefrag オプションで制御できます。
さらに、専用GPUにおいては、DXVKがドライバーが報告するVRAM制限を可能な限り適用するようになり、未使用リソースのより効率的な解放が可能になります。これにより、Unityで開発されたゲームなど、特にビデオメモリが限られたマシンにおいて、よりスムーズなゲームプレイが可能になります。
コードのクリーンアップと重点的な改善
よりクリーンでモダンなコードを維持するための取り組みの一環として、 廃止された機能は削除されました d3d9.forceSwapchainMSAA オプションや、VK_EXT_graphics_pipeline_library 拡張機能の採用後に廃止された従来の状態キャッシュなど。
さらに 安定性とパフォーマンスを向上させるために特別な最適化が組み込まれました Source エンジンに基づくゲームの高速化と、バッファーと変数の自動入力による Direct3D 11 でのシェーダーのより安全な初期化を実現します。
バグ修正と改善について:
- 平面ビデオ出力ビューのサポートが追加されました。
- D3D11 シェーダーは、未定義の動作を引き起こすゲームのバグを防ぐために、デフォルトですべての変数とグループ共有メモリをゼロ初期化するようになりました。
- Source Engine で発生する特定のマルチサンプル解決ケースにおいて、D3D9 の StretchRect の使用を最適化しました。
- Modulus およびおそらく D3D11 ビデオ API を使用する他の Unity エンジン ゲームでの Vulkan の無効な使用を修正しました。
- ID3DDestructionNotifier インターフェイスのサポートが実装されました。
- DXVK を実行するために必要な機能を持たない Vulkan デバイスは、DXGI/D3D9 アダプターとしてリストされなくなります。
- 現在、AVX が有効になっている MinGW 環境で DXVK をコンパイルしようとすると、コンパイル時エラーが発生します。
DXVKサポートを追加する方法は?
Linux への DXVK のインストールは、ディストリビューションや、Wine、Proton、Lutris のいずれを使用しているかによって若干異なる場合がありますが、ここでは最も一般的なケースのガイドを示します。
WineでDXVKをインストールする
DXVKは公式GitHubページからダウンロードできます。最新の.tar.gzファイル(この場合はバージョン2.7)をダウンロードしてください。
wget https://github.com/doitsujin/dxvk/releases/download/v2.7/dxvk-2.7.tar.gz
ダウンロードが完了したら、新しく取得したパッケージを解凍します。これは、デスクトップ環境から、または次のコマンドを実行して端末自体から実行できます。
tar -xvf dxvk-2.7.tar.gz cd dxvk-2.7.tar.gz
WineプレフィックスにDXVKをインストールする
~/.wine で Wine プレフィックスを使用していると仮定します。
エクスポート WINEPREFIX=~/.wine ./setup_dxvk.sh インストール
これにより、必要な DLL ファイル (d3d9.dll、d3d10.dll、d3d11.dll、dxgi.dll) がプレフィックス内の system32 フォルダーと syswow64 フォルダーにコピーされます。
Lutrisを使ったインストール(簡単)
Lutris を開いてゲームを選択します:
- 右クリック > 構成 > ランナー オプション タブ。
- 「DXVKを有効にする」ボックスにチェックを入れます。
- そこからお好みの DXVK バージョンを選択できます。
- 変更を保存してゲームを実行します。
Steamへのインストール(Protonを使用)
Steam Play (Proton) を使用する場合:
- すべてのタイトルで Steam Play を有効化:
- Steam > 設定 > 互換性 > Steam プレイを強制する。
- Proton に含まれている DXVK のバージョンをカスタムのバージョンに置き換えることができます (何をしているのかわかっている場合以外はお勧めしません)。
- または、Proton に DXVK を自動的に管理させることもできます。これはデフォルトで組み込まれています。
DXVKが動作していることを確認する
DXVK がアクティブかどうかを確認するには、ゲームを起動して、ゲームが実行されているフォルダーを確認します。d3d11.log や dxgi.log などのファイルが表示される場合、DXVK は正常に実行されています。
DXVK HUD などのツールを使用して画面に統計を表示することもできます。
DXVK_HUD=1 をエクスポート
Wine または Lutris でゲームを実行する前にこの変数を設定します。