
D7VK 2.1 がリリースされました。これは、 Direct3D 7、6、5、3 をベースにした古い Windows ゲームを Vulkan 上で動作させるためのオープンソースのグラフィック変換レイヤーです。以前のバージョンで大幅なパフォーマンス改善が実現しましたが、今回のアップデートでは、ゲームのロード時間と起動時間の短縮に重点を置いています。一部のタイトルでは、ゲームのロード時間や起動時間が半分に短縮されています。
D7VKは、Direct3Dの初期バージョンを使用するクラシックゲーム向けに特化しており、WineまたはProtonを使用してLinux上で実行できます。このプロジェクトは、これらの古いAPIのバックエンドとしてVulkanを使用しており、Direct3D 8、9、10、11に焦点を当てた最新バージョンのDXVKや、Direct3D 12向けに設計されたVKD3D-Protonでは直接対応できないギャップを埋めています。
D7VK 2.1はクラシックゲームの読み込み時間を短縮します
D7VK 2.1の主な新機能は、オブジェクトの作成と破棄に関するものです。このプロジェクトでは、これらのオブジェクトのライフサイクルを追跡する際のオーバーヘッドを削減し、ゲームのロードおよび初期化フェーズで必要な処理を軽減しました。
この変更は起動時間に直接的な影響を与えます。開発者によると、いくつかのタイトルで顕著な改善が見られ、D7VKの以前のバージョンと比較してロード時間が半分以下になったものもあるとのことです。クラシックゲームは通常、最新のハードウェアではロード時間の問題が深刻になることはありませんが、このプロジェクトでは、これらの最適化によって利用可能なリソースをより有効に活用できると考えています。
キャッシュシステムにも改良が加えられました。オブジェクトライフサイクル管理コストの削減とキャッシュ動作の効率化により、アプリケーションの起動時およびその後の特定の操作時にD7VKが実行する必要のある処理量が削減されます。
重要な互換性修正も含まれています。
D7VK 2.1は、読み込み時間の最適化だけでなく、関連する深度ステンシルサーフェスの解放に関連する解放後使用(use-after-free)の問題も修正しています。このバグは、MSVCまたはClangを使用してコンパイルされた特定のバイナリでのみ発生し、起動中に一部のゲームが予期せずクラッシュする原因となっていました。
影響を受けたタイトルの1つである『Arx Fatalis 』は、起動時にクラッシュする可能性がありました。D7VK 2.1に含まれる修正プログラムにより、この問題が解決され、ゲームは当該バグに遭遇することなく起動できるようになります。
今回のアップデートには、特定のゲームに対する調整も含まれています。これには、バイオハザード2とエンパイア・アース:アート・オブ・コンクエストという2つの名作タイトルのパフォーマンス改善が含まれており、今回のアップデートでその恩恵を受けることができます。
GetDCとReleaseDCの新しいオプションルート
の別の目新しさ D7VK 2.1 これは、呼び出しのオプションの実行パスです。 GetDC y ReleaseDCその目的は、これらの機能を多用する特定のゲームのパフォーマンスを向上させることです。
実装は任意です。なぜなら、その結果は各ゲームの動作に大きく左右されるからです。場合によってはパフォーマンスが向上することもありますが、別のケースでは正反対の効果が生じ、特定の操作のコストが増加する可能性もあります。
開発者自身も、この方法を用いることで『Arx Fatalis』のゲームプレイ中にフレームレートが約5~10%向上することを確認しています。しかしながら、同じ変更によってゲームのメインメニューのレンダリング時に顕著なパフォーマンス低下が生じます。したがって、これは無差別に有効にすべき万能な最適化ではなく、特定のタイトルにおいて有効なオプションと言えるでしょう。
LinuxでWindowsの名作ゲームをプレイするための興味深い改善点
D7VK 2.1の最大の利点は、そのゲームカタログにあります。最新のタイトルと比べると規模は小さいかもしれませんが、Linuxをクラシックゲームのプラットフォームとして利用するユーザーにとっては依然として重要な存在です。このレイヤーは、古いDirect3D API 3、5、6、7をVulkanに変換することを可能にし、WineやProtonを使用してこれらのゲームを実行できるようにします。
これは、現代のグラフィックAPIが標準となるずっと以前に開発されたタイトルにとって特に有用です。D7VKは、Wineを通じて利用可能な従来のDirect3D実装だけに頼るのではなく、Vulkanベースのアプローチを提供することで、最新のグラフィックハードウェアおよびドライバとの互換性とパフォーマンスを向上させます。
D7VK 2.1が利用可能になりました
D7VK 2.1がプロジェクトリポジトリからダウンロード可能になりました。この新バージョンは、以前のアップデートほど大幅なFPS向上に重点を置いておらず、翻訳レイヤーの内部動作の改良に重点を置いています。
オブジェクト作成時のオーバーヘッドを削減し、キャッシュを改善し、ブートプロセスを最適化することで、特定のゲームでのロード時間を大幅に短縮できます。これは、Arx Fatalis のクラッシュを修正し、他のタイトルを調整し、新しいオプションのパスを追加することに加えて行われます。 GetDC/ReleaseDC.
これにより、D7VK 2.1はLinux上でのゲームプレイにおける非常に特殊な側面、すなわちMicrosoftの旧世代グラフィックAPIに依存するクラシックタイトルの実行性能をさらに向上させています。このアップデートは、たとえ数十年前のゲームであっても、最新のハードウェアで動作していても、こうしたゲーム体験を洗練させる余地がまだあることを示しています。