コンテンツにスキップ

DXMT

DXMT は、DirectX 11 ベースの Windows ゲームを macOS で実行するために使うグラフィック変換レイヤーです。 Windows ゲームは通常、Direct3D 11 と DXGI を通じてグラフィックデバイス、スワップチェーン、テクスチャ、シェーダー、レンダーターゲットを扱います。 macOS は DirectX を提供していないため、これらの呼び出しを Apple の Metal API へ変換する中間レイヤーが必要です。

DXMT の役割は、DirectX 11 命令を Metal 命令へ翻訳することです。 ゲーム側からは DirectX 11 環境で実行されているように見え、macOS 側からは Metal を使用するプログラムのように動作するよう接続します。

この過程は単純な命令置き換えではありません。 DirectX と Metal は、リソース管理、シェーダー処理、同期方式、レンダリングパイプラインの表現方法が異なるため、DXMT は 2 つの API の差を継続的に調整する必要があります。

DXVK は、DirectX 9/10/11 呼び出しを Vulkan へ変換する代表的なプロジェクトです。 Linux では Vulkan を直接使用できるため、DXVK は非常に強力な選択肢になります。

macOS では状況が異なります。 macOS は Vulkan をネイティブ API として提供していないため、Vulkan をさらに Metal へ変換するレイヤーが追加で必要です。 この場合、グラフィック呼び出しの経路が長くなり、問題発生箇所の追跡も難しくなることがあります。

DXMT は、DirectX 11 から Metal へ向かうより直接的な経路を目標にしています。 バブトンイリホヨが DXMT を中心に構成されている理由もここにあります。

DXMT があるからといって、すべての DirectX ゲームが自動的に実行できるわけではありません。 ゲームが使用する DirectX 機能、シェーダー、アンチチート、ランチャー構造によって、実行可否が変わる場合があります。 またゲームアップデートによってグラフィックオプションやレンダリング経路が変わると、以前動作していた設定が合わなくなることもあります。

本プロジェクトでは、Eternal Return と HoYoverse ゲームの実行を優先目標としています。 他のゲームで DXMT が動作したとしても、そのゲームまで公式にサポートするという意味ではありません。