ニュース
Frostbite 3エンジンの凄腕開発者が語る「Mantle」の可能性。Windows以外でもサポートできる?
AMD独自グラフィックスAPI「Mantle」の詳細が明らかに。理論上はGeForceのMantle対応も可能!?
講演を担当したのは,EA DICEのテクニカルディレクターであるJohan Andersson氏。氏は,EA DICEから独立した「Electronic Artsグループのゲームエンジン部門」であるFrostbiteが手がける最新世代のエンジン「Frostbite 3」の開発に携わっており,今回は,「Ba
先の記事と一部重複する内容もあったが,詳しくレポートしていきたい。
広がりを見せるMantle対応ゲーム
EAグループは15タイトルが対応予定
ただし,「より深いレベルでの最適化やマルチGPUのサポートも行い,PC版のグラフィックス要素もすべて持ち込んでいるので,PS4版の移植というわけではない」とも,氏は断っている。
BF4と同じFrostbite 3エンジンを使うゲームとしては,「Plants vs. Zombies: Garden Warfare」も,Mantleへの移植が進行中だという。こちらは,高性能な単体GPUではなくAPUが対象であり,ハイスペックPCでの描画性能にどこまで迫れるかをテーマとして,開発が進められているとのことだ。
またEA DICE以外にも,Electronic Artsグループ(以下,EA)の他スタジオが手がけるゲームのうち,15タイトルがMantle対応前提で開発されていることも明らかにされた。具体的に名前が挙がったタイトルは,「NEED FOR SPEED RIVALS」や「Dragon Age: Inquisition」で,そのほかに「Mirror'sEdge」シリーズの新作や「Star Wars」の新作ゲーム,そして「Mass Effect」新シリーズなどが,Mantle対応予定であるという。
「Plants vs. Zombies: Garden Warfare」は,APUでの快適動作を目指してMantleに対応する |
EA DICEに留まらず,EAグループでは15タイトルものMantle対応ゲームを予定している |
多彩なハードウェアをサポートしなくてはならない
DirectXやOpenGLが抱える問題
さて,Andersson氏による講演の主題は,Mantle対応タイトルの紹介ではなく,「Mantleで何ができるのか」である。それを理解するには,特定のGPUアーキテクチャを前提に,抽象化レイヤーを薄くしてアプリケーションが直接にGPUを制御する」というMantleの仕組みが,なぜ求められるのかを知る必要があるだろう。実際,Andersson氏も,まずそこから説明を始めている。
そもそもDirectX(のDirect 3D)やOpenGLといったグラフィックスAPIは,さまざまなメーカーの多種多様なアーキクチャのGPUを対象として開発されたものだ。そのため,「これらのAPIを使って開発すれば,最終的にどのGPUでも,同じプログラムで(性能面はともかく)同じ結果が得られる」ことが大前提となっている。
これらのAPIが登場した1990年代は,いくつもの半導体メーカーが独自アーキテクチャのGPUを市場に投入するという,混沌とした時代だった。そのため,アーキテクチャの違いを隠蔽し,どのGPUでも同じようなグラフィックスを表現できるような「安定した仕組み」が必要とされていたのだ。
だがそのために,ハードウェアが本来持つ性能を生かし切るのが難しくなるという弊害が生じることにもなる。Andersson氏は,現状のDirectXやOpenGLの仕組みだと,「マルチコアのCPUを搭載するPCであっても,GPUに命令やデータを送るときに,マルチコアであるメリットを生かせていない」と指摘する。
ここは少し説明が必要だろう。ゲームグラフィックスは,ざっくり言うと,以下の手順で描画されている。
- アプリケーションがDirectXやOpenGLのAPI(Application Program Interface,命令や関数をまとめたもの)を呼び出す
- APIが,「GPUに処理させるための命令書」を,「コマンドバッファ」(Command Buffer)と呼ばれるメモリ領域に積み上げる
- 積み上げた命令書を,グラフィックスドライバがGPUに順次受け渡す(※受け渡すことを,専門用語では「発行する」という)
- グラフィックスドライバに受け渡された順番で,GPUが実際の処理を行う
ここでポイントとなるのは,DirectXやOpenGLの場合,コマンドバッファの管理が,アプリケーションではなく,API側で行われているということ。そして,DirectXやOpenGLも,コマンドバッファを処理するときにマルチコアCPUを活用できるように改善が進められてはきた。
しかしAPI側は,アプリケーション側のスレッド(=プログラムの細かい単位)管理とは完全に切り離されているので,アプリケーション側と完全に並列化させて処理するような,細かい制御ができない。それどころか,場合によってはアプリケーション側の実行スレッドと衝突して,処理が遅延してしまうことすら起こり得る。Andersson氏が指摘する,「メリットを生かせていない」とは,こうしたことを意味しているのだ。
そこでMantleは性能を引き出すために,DirectXやOpenGLとは違うアプローチを取った。Mantleではコマンドバッファの管理や,コマンドバッファからGPUへのコマンド発行までをアプリケーション側で実行できるように設計されている。
そのため,各CPUスレッドが独自にコマンドバッファを持ち,それぞれを順次GPUへ発行することが可能となる。これはマルチコアCPUの稼働率を上げ,GPUが駆動するまでの遅延を短縮することにもつながるので,結果としてハードウェアの性能を引き出せるというわけだ。
アプリケーションがGPUを細かく制御できるMantleなら,
今までにないグラフィックスレンダリングが可能に?
Mantleであれば,「あるグラフィックスレンダリングが画面を描画している間に,DMAに命じて,次の描画に必要なデータをメインメモリからグラフィックスメモリ側へ転送さておく」といった協調動作を,アプリケーションが明示的に実行できる。
あるいは,GPGPU側でライティングをレンダリングしながら,グラフィックスレンダリング側では影生成を並行して行わせ,両方の結果を最終的に合成するといったことも可能となる。
協調動作による最適化の例。ここではDMA処理を他の処理にオーバーラップさせている |
別の最適化例。GPGPUとグラフィックス処理を,あえてオーバーラップ実行させている |
なお,「GPGPUをグラフィックス用途に使う」ことに違和感を覚える人はいるかもしれないが,これはPlayStation 4やXbox One世代のゲームグラフィックスにおいて流行している手法だ。GPGPUを用いてカリング工程やポストエフェクトを処理するといった仕組みは,Andersson氏が手がけたFrostbite 3エンジンでも実装されている。
話を戻そう。グラフィックスレンダリングとGPGPU,DMAの各実行部をアプリケーションが的確に制御でき,それぞれを適切にオーバーラップさせて並列処理できるため,Mantleは「レンダリングパイプラインそのものに革新を与えられる」と,Andersson氏は述べた。
具体的には,膨大な数の頂点データを扱う「ポイントクラウド」や,Pixar Animation StudiosがCG映画制作で活用している「マイクロポリゴン化レンダリング」といった手法を,Mantleならゲームグラフィックスで実現できる。つまり,三角形(ポリゴン)メッシュの3Dモデルを使わないゲームグラフィックスが,現実のものとなるわけだ。
このように,GPGPUとグラフィックスレンダリングを併用する手法が,GPUとCPUを効率よく活用する仕組みと組み合わされば,「Mantle対応アプリケーションでは,新しいレンダリングメカニズムを実現できるかもしれない」と,Andersson氏は期待を示していた。
Mantleの成否を握るのは……Windows以外への展開?
さて,Mantleは今のところ,Windows環境のみに提供されている。ターゲットのハードウェアがPCであり,PCゲームの主たるプラットフォームがWindowsである以上,これは必然であろう。
しかしAndersson氏は,Mantleを「他のプラットフォームにも展開していってほしい」と,基調講演の中で要望した。具体的な対象として氏が挙げたのは,LinuxとMac OS,そしてAndroidのようなモバイルOSだ。
たとえば,MantleがLinuxに対応すれば,Valveが計画しているLinuxベースのゲーム機「Steam Machine」が面白い存在になるだろうと,Andersson氏は述べる。また,モバイル機器の場合,「絶対的な性能が低いからこそ,MantleのようなAPIが意味を持つ」とも主張していた。
Andersson氏は,LinuxやMac OS,モバイル機器へMantleを広げるべきだと主張する |
また,先日掲載したMantleのセッションでは,AMDでMantleのチーフアーキテクトを務めるGuennadi Riguer氏が,「NVIDIAなどの競合GPUメーカーが“Mantleの仕組み”に参加することも技術的には可能」と述べていた。
Andersson氏もこれを踏まえたうえで,「現代のGPUならばアーキテクチャ的に,他ベンダーのGPUでもMantleのフレームワークを導入可能だ」と主張し,「すべてのGPUが,Mantleでコントロールできるようになることを望む」と訴えた。
9月の発表時点では,MantleはPS4,Xbox Oneへの採用を追い風に,ゲームデベロッパをGCNアーキテクチャに囲い込む戦略といった読みもあった。だが,発表から1か月以上経ってみると,ゲーム開発者コミュニティから良好なフィードバックが得られており,意外にもこの先,大きな勢力として成長していくのではないかという気配も見えてきている。
そのうえAndersson氏のように,GPUメーカーからも一目置かれる大手スタジオのスタープログラマーから,NVIDIAやそれ以外のGPUメーカーに参画を期待するコメントが出てくると,AMD以外のGPUやGPUコアIPメーカーも,何らかのリアクションを見せる必要に迫られるかもしれない。
Mantleにまつわる今後の動向からは,目が離せなさそうだ。
AMD Developer Summit 2013 公式Webサイト(英語)
- 関連タイトル:
Mantle
- この記事のURL: