![]() | |
開発元 | AMD、DICE[1] |
---|---|
最新版 |
1.0
|
対応OS | Windows、Linux(予告)[2][3] |
プラットフォーム | x86 and x64 |
サポート状況 | Beta[要出典] |
種別 | レンダリングAPI |
ライセンス | プロプライエタリソフトウェア、フリーウェア |
公式サイト | amd.com |
Mantleは、3Dゲームを対象としたローレベルレンダリングAPI[4]である。アドバンスト・マイクロ・デバイセズ(AMD)が、EA Digital Illusions CE(DICE)と共同で2013年より開発を開始した[1]。Direct3DおよびOpenGLを代替するものとして設計され、主としてパーソナルコンピュータ向けであるが、PlayStation 4とXbox Oneに搭載されているGPU (APU) もサポートする[1][5]。
AMDによると、DirectX 12 (Direct3D 12) もしくはクロノス・グループによるMantle派生[6]のVulkan APIによってMantle 1.0の置換が可能であることから、Mantle自体は2015年3月以降、別の領域にフォーカスをシフトするとされている[7][8]。2015年3月までの2年間は、デバイスドライバーによるサポートが行われていたものの、Mantle API仕様自体は一般公開されていなかった[9]。
Mantleが開発された背景には、従来からPC向けのリアルタイム3次元コンピュータグラフィックスAPIとして利用されてきたDirect3DおよびOpenGLは、コンソール(ゲーム専用機)環境とは違って抽象化・共通化・標準化が重視されるためにAPIコールのオーバーヘッドが大きく、またレンダリングにマルチコアCPUを最大限活用することができないといった問題を抱えていたことが挙げられる[10]。これらの問題は特にAAAタイトルのゲームソフトウェアのように厳しい最適化が要求されるケースで大きな悪影響をもたらす。
Mantleにおけるドローコールの改良により、CPUがボトルネックとなっているケースが緩和される[11][12][13]。Mantleの設計目標は、ゲームおよびアプリケーションがCPUとGPUを効果的に利用すること、APIによるコマンドの評価・検証 (Validation) のオーバーヘッドを減らし、マルチコアCPUでのスケーラビリティを向上させることでCPUのボトルネックを取り除くこと、より高速な描画ルーチンを提供すること、そしてDirect3DやOpenGLが有するハードウェア抽象化の一部を取り除くことで、より詳細なグラフィックスパイプラインの制御を可能にすることである[14][15]。
なお、Mantleはハードウェア制御のいくつかをAPIからアプリケーション側に移すことで、アプリケーション開発者による詳細かつ直接的なハードウェア制御を可能にする反面、Direct3D/OpenGLのように高度に抽象化されたAPIを利用する場合と比較して開発工数が増加する可能性が存在することから、ゲームアプリケーション開発者用というよりはむしろゲームエンジン(ライブラリ)開発者用との指摘もなされている[13]。
Mantleの登場後、ローレベルを指向した新世代のグラフィックスAPIとして、AppleのMetal、マイクロソフトのDirectX 12、そしてKhronosのVulkanが次々に発表された。DirectX 12に関してはMantleに触発されて開発が始まったことが示唆されており[16]、またVulkanに関してもやはりMantleを要素技術として取り込んだことが発表されており[17][18]、Mantleは新世代のローレベルAPIの先駆者となる役割を果たした。
基本的な実装の背景として、MantleはCPUが制約要因となっているようなシナリオにおいてパフォーマンスを改善するために設計された。
Mantleはまた、高解像度かつ「最高レベルの詳細」設定が使われるような状況を改善するために設計された。とはいえ、これらの設定はGPUの計算資源に負荷をかけるため、API層での改善は難しい。MantleはGPUバウンドなシナリオにおけるパフォーマンスを改善するために下記のような組み込み機能を提供するが、改善率はゲームエンジンがMantleの機能および最適化をどの程度利用しているかに大きく依存する。
Microsoft Windows用のドライバー「AMD Catalyst」でのみサポートされる。対象となるハードウェアは、GCN(Graphics Core Next)アーキテクチャを採用したAPUおよびグラフィックスカードに限定される。下記に一例を示す。