
Direct3D 7、Direct3D 6、Direct3D 5、Direct3D 3 をベースにした古いゲームを Vulkan Linux 上で動作させるために設計された互換性レイヤーの最新バージョン、D7VK 2.3 がリリースされました。2016 年 9 月 29 日にリリースされたこのアップデートには、新たな最適化、いくつかのクラシックゲームに対する特定の修正、および古いグラフィックス API のパフォーマンス向上を目的とした内部変更が含まれています。
しかし、今回のバージョンではプロジェクトの将来にとって重要なニュースも発表されました。開発者によると、D7VKはメンテナンスモードに入るとのことです。つまり、今後大きな新機能は追加されず、今後のバージョンでは特定のゲームや設定で発生する可能性のあるバグの修正に重点が置かれることになります。
D7VK 2.3 は古い Direct3D を Vulkan にもたらします
D7VKはDXVKから派生したプロジェクトで、DXVKが直接カバーしていないDirectXの一部、つまりDirect3Dの初期世代に特化しています。
DXVKは主に最新のAPIに重点を置いているのに対し、D7VKはDirect3D 3、5、6、7に対応したVulkanベースの実装を提供します。これにより、Wineは90年代後半から2000年代初頭にかけてこれらの古いグラフィカルインターフェースに依存していた多数のゲームを実行できるようになります。
このプロジェクトは、Direct3Dの初期世代を使用しているタイトル、特にWineの従来のグラフィックパスを使用して実行すると問題が発生する可能性のあるタイトルにとって、非常に興味深いものです。
日陰面向けの新しい最適化
D7VK 2.3 の主な変更点の 1 つは、いわゆるシャドウ サーフェスに影響を与えるものです。シャドウ サーフェスとは、D3D 交換チェーンと DirectDraw を使用したプレゼンテーションとの間の競合を回避するために内部的に使用されるサーフェスです。
以前のバージョンでは、これらのサーフェスはデバイスのメモリに保存されていました。D7VK 2.3では、これらがシステムメモリに移動されます。
この変更は、マウスカーソルを最終画像に直接コピーするなど、これらのサーフェスを多用するゲーム向けに特別に設計されています。開発者によると、この変更により、そのようなシナリオで顕著なパフォーマンス向上が見込めるとのことです。
テクスチャ識別子処理の再編成
D7VK 2.3では、旧バージョンのDirect3D APIで使用されていた識別子の処理方法にも変更が加えられています。
Direct3D 6ではテクスチャ識別子が公式に削除されましたが、一部のプログラムは引き続きそれらに依存する互換性パスを使用していました。新しいバージョンでは、D7VKと互換性のあるさまざまな世代のDirect3D間で、これらの識別子の扱いが標準化されています。
その目的は、これらのインターフェースを通常とは異なる方法で使用している古いアプリケーションとの互換性を向上させ、特定のゲームにおける誤動作を防止することです。
クラシックゲームの修正
D7VK 2.3には、古いタイトルに対するいくつかの具体的な修正も含まれています。
影響を受けるゲームには、『ニード・フォー・スピード ポルシェ』 、 『ダーク・ベンジェンス』 、『ZAR』、『スター・ウォーズ X-ウィング・アライアンス』などが含まれます。レンダリングの問題、サーフェス管理の問題、古いAPIの動作に関する問題などについても、様々な修正が実施されています。
『ニード・フォー・スピード:ポルシェ』に関しては、グラフィック表現に関する変更が加えられており、その他のタイトルについては、互換性テスト中に検出された特定の問題を解決するための修正が行われています。
D7VK 2.3はDXVK 3.1.1をベースにしています。
このバージョンでは、D7VKで使用されるコードベースも更新されています。D7VK 2.3はDXVK 3.1.1をベースに構築されており、元のプロジェクトからの対応する変更が組み込まれています。
これにより、D7VKは共有インフラストラクチャに加えられた修正や変更の恩恵を受け続けながら、古いDirect3D APIに対する独自の変更を維持することができます。
プロジェクトはメンテナンスモードに入ります
D7VK 2.3の最も重要な新機能は、Vulkanや特定のゲームとは直接関係がありません。
開発元のWinterSnowfallは、D7VKがメンテナンスモードに入ることを発表しました。プロジェクトは目標の大部分を達成しており、今後は大きな新機能の追加は予定されていません。
これはD7VKが放棄されるという意味ではありません。プロジェクトは引き続きバグ修正を受けますが、開発ペースは遅くなり、新バージョンのリリース頻度も少なくなります。
この決定はプロジェクトの進化という観点から見て理にかなっている。D7VKが実装したAPIは何十年も変更されておらず、現在の主な目的は、機能を継続的に拡張することではなく、既存のゲームが正しく動作し続けるようにすることだからだ。
これはLinuxユーザーにとって何を意味するのでしょうか?
Wine経由で従来のWindowsゲームを使用しているユーザーにとって、D7VK 2.3は主に統合バージョンと言えるでしょう。
このプロジェクトは、様々なバージョンを通してパフォーマンスと互換性の向上を積み重ねており、Direct3D 3、5、6、7ベースのタイトルをVulkanを使用して最新のグラフィックハードウェアで使用できるようにしています。
メンテナンス状態への移行は、今後のバージョンで機能の大幅な向上は期待できないことを意味しますが、D7VKが役に立たなくなるという意味でもありません。既にD7VKで正しく動作するゲームがある場合、プロジェクトの新しい状態は、開発がその互換性の維持と、発見された特定の問題の修正に重点を置くことを意味するだけです。
特に古いハードウェアを使用しているユーザーは、DXVK-Sarekを使用することもできます。これは、D7VKの多くの機能を、古いバージョンのVulkanと互換性のあるベースに組み込んだものです。このバージョンは、最新バージョンのD7VKを使用できないシステム向けに設計されています。
D7VK 2.3、統合段階
D7VK 2.3は、技術的な改良とプロジェクトの新たな段階の始まりを象徴するものです。新バージョンでは、サーフェス管理の最適化、内部コンポーネントの再編成、いくつかの定番ゲームの不具合修正、そして技術基盤のアップデートが行われています。
しかし何よりも重要なのは、D7VKが拡張プロジェクトからメンテナンス専用ツールへと移行する節目となることです。Linux上でDirect3Dの初期世代に基づいたゲームを実行する必要があるユーザーにとっては、このプロジェクトは引き続き利用可能であり、バグ修正も継続されますが、主要な新機能は利用できなくなります。