ページ

2013年10月10日木曜日

AMD Mantle と OpenGL

今日も駄文を書こうかと……。ValveのSteamOS(Steam Machines)は、現在の情報では「NVIDIA」がパートナーとなって、OpenGLドライバーの改良を行なっているらしいですね。じゃあ、もう一つの雄である「AMD」はどうなのでしょう?

今の所、NVIDIAのように公式ウェブサイトでSteamOSについて言及しているアナウンスは無い(多分)ですが、代わりに「Mantle」という低レベルAPIを発表しました。これはWindowsOSで汎用グラフィックAPIとして使われている「Direct3D」と、ある意味で競合するAPIで、一応「クロスプラットフォーム」なAPIであるとアナウンスされています。と言っても、基本的にはAMDのGPU、それも最新の「GCN」アーキテクチャのみに対応しているという、極めて効果範囲が狭いAPIなので汎用性が売りであるDirect3DやOpenGLとは毛並みが違う訳ですけど。

似たようなAPIとして、90年台後半に3DfxのGPU「Voodoo」向けに開発した「Glide」というものが有り、実際性能も当時のDirect3Dと比べると良かったので一時期はかなり勢力があったAPIだったみたいですね。当時はあまり覚えていませんが、確かにGlideというのは聞いた事あります。その後は紆余曲折があって、結局はGlideどころか3DfxがNVIDIAに吸収される形で消滅してしまったみたいですが……。

今回のMantleも技術的にはGlideと似たようなモノですが、AMDに言わせると政治的? 背景が全く違うので勝機アリと判断したのかもしれませんね。確かに3Dfxと違い、現在のAMDは主要据え置きゲーム機(PS4、XBone、Wii U)全てのGPUを供給していますし、PCに置いても永遠のライバル、NVIDIAと二分する主要GPUメーカーですしね。

特に据え置きゲーム機(と言っても、WiiUはGPUがGCN世代ではないですが)のPS4とXBoneをAPUで制したのは大きいですね。PC(Windows)のみなら、ゲームデベロッパーは手間の掛かるAMD専用API、しかも最新のGCNにしか対応していない低レベルAPIなんて、手間が掛かる割にはリターンが少ないので対応する事に二の足を踏むでしょうが、今回は主要ゲーム機2つに採用されているので、作業効率としては格段に上がる可能性がありますし。まぁMantleがベースにしている技術がPS4由来なのかXBone由来なのか判りませんけど。PS4はGNMという低レベルAPIが確認されていますが、XBoneはDirect3D以外に低レベルAPIが用意されているのか一般には漏れてきてませんしね。一説にはMantleはXBoneの低レベルAPIがベースだという噂もありますけど……。

もし、このMantleが次世代据え置きゲーム機の低レベルAPIと何らかの互換性があるAPIだったら、Windowsはもとより、LinuxというかSteamOSにAAAタイトルの移植が今まで以上に簡単になる「可能性」はあります。まぁAMDのGCNに対応している「Steam Machine」限定ですけど……。

特にAMDの次世代APU「Kaveri」は、汎用PC向けでありながら(性能は別として)PS4と技術共有している(hUMAやGDDR5?対応)ので、個人的には最も「Steam Machines」に相応しいアーキテクチャかなと思っているんですよね。NVIDIAとしては、据え置きゲーム機をAMDに全てとられてしまい、一応の保険としてSteamOSに協力的なのもあるでしょうし。今はPCゲーム技術のリファレンス的な立場にあるNVIDIAですが、今回のAMDの躍進で一気に立場を逆転されかねないですからね。隙を見せると、このMantleみたいに攻められますし。

そんな感じで、AMDとしてはMantleで歩みが止まりがちな「DirectX」の揺さぶりを掛けている訳ですが、SteamOS(Linux)に対してはどうなんでしょうか? 今の所、明確な答えは出していませんが、技術的には可能でしょう。少なくともMacよりは遥かに導入しやすいでしょうし。問題は「需要」があるかって事なんですけど……。

毎度の事ながら、カーマック先生がMantleのパフォーマンスについてツイートしてくれているので引用します。

確かにDirect3Dに比べるとパフォーマンスは上がるけど、NVIDIAのOpenGL拡張を上手く使えば、似たようなパフォーマンスが得られるみたいですね。OpenGLは各ベンダーが独自に拡張する事が許されているらしいですね。まぁあまり多用すると、汎用性が失われるので本末転倒な気がしますけど。

面白いのは、AMDもMantleベースの技術をOpenGL拡張でOpenGL上に持ち込もうとしているらしい事なんですよね。しかも、この移植作業の為にOpenGLの専門家を招いているようですし。まぁこの為というか、もしかしたらPS4絡みなのかもしれませんが……。





勉強不足で知りませんでしたが、Graham Sellers氏は「OpenGL SuperBible」というOpenGLの赤本の著者という専門家で、今はAMDでRADEONのOpenGLの最適化を担当しているらしいです。氏のツイートで気になるモノをもう一つ引用。



どうやらAMDのOpenGL?ドライバーはWindowsとLinux版で90%くらいは共通化されてるみたいですね。Mantleドライバーがどうなるのか判りませんが、おそらくAMD推奨のゲーム開発環境はMantleからフィードバックされたOpenGL拡張がGCN世代は主流になると思う(Direct3Dの独自拡張が認められていなければ)ので、そのドライバーがWindowsとLinuxで共通化されているというのはLinux(SteamOS)には朗報ですね:-)

Mantleが軌道に乗れば、いずれはLinux版ドライバーも出てきそうですが、その前段階としてMantleベースのOpenGL拡張が追加されたLinux版ドライバーが確実にLinux(SteamOS)にも導入されると思います。

#Amazon
OpenGL SuperBible: Comprehensive Tutorial and Reference (6th Edition)
Graham Sellers, Richard S Wright, Nicholas Haemel
Addison-Wesley Professional ( 2013-07-31 )
ISBN: 9780321902948

#外部リンク
AMD Aims To Give OpenGL A Big Boost, “API Won’t Be The Bottleneck” | DSOGaming | The Dark Side Of Gaming
http://www.dsogaming.com/news/amd-aims-to-give-opengl-a-big-boost-api-wont-be-the-bottleneck/

Graham Sellers | LinkedIn
http://www.linkedin.com/in/grahamsellers

3dfx - Wikipedia
http://ja.wikipedia.org/wiki/3dfx#Glide

2 件のコメント:

  1. Steam関連の記事、かねてより楽しく読ませていただいております。あのコントローラは正直どうなのかと思いましたが、動画で見ると思ったよりよさそうな感じですね。
    さてMantleですが面白い時代になりましたね。以前は、今回の記事にも掲載されている3dfxのGlide、他には私の知る限りではS3のMetal、PowerVRのSGL、あとIntelも3DIとか何とかいうのを本当に黎明期の混乱の頃に作っていたはずですが、全部Direct3Dに淘汰されてしまいましたね。
    ちょっとかじった程度ですが、Glideは結構作りやすいAPIでした。2Dへの応用も楽でした。機種が限定されていることもあり、テクスチャのフォーマットやレンダリング結果の相違などもあまり考えずに使えました。
    ただ、OpenGLでもGlideと難しさはあまり変わらないわけで、Direct3Dが無駄に煩雑なだけとも言えますけどね…
    それが今や、逆に戦国時代の様相を呈するとは。
    NVIDIAも3dfxを買収したのですから、ここらでGlideを復活させても面白いと思うのですけどね。もちろん、OpenGLは基本として押さえていただいて。
    これを機会にATIもLinuxのバイナリドライバの質を上げてくれるといいのですけどね。
    あるいはMantleをLinuxに出して、それをMesaにでも使った半プロプライエタリドライバとか、誰か作ってくれないかなw

    個人的にはOpenGLが習得も簡単で応用も楽、さらにスピードもDirect3Dより速い気がず〜っと以前(DX9の頃)からしてました…

    返信削除
  2. コメントありがとうございます。正直、プログラミングの事を全く知らない素人が適当に書いているので、何時か本職の方に怒られはしないかと内心ビクビクしながら書いております……。今回のような暖かいコメントを頂けると非常に励みになります:-)

    自分もコントローラーを最初に見た時は、正直エッて思いましたが、プロトタイプである事と例のビデオを見る限りでは、そんなに悪い感じでも無さそうなんで安心しました:-)

    Mantleはどうなんでしょうねぇ。第二のGlideの道を辿るんじゃないかって言う意見も結構ありますが、据え置き機との兼ね合いとDirect3Dの停滞を見ると、ある程度普及するかもなぁとも思いますし……。

    MantleのLinux版は個人的には有るかもなと思っています。PS4のドライバーが非公開なんで何とも言えませんが、元々AMDはFreeBSD向けのプロプライエタリドライバーは未提供でしたので、恐らくLinuxのCatalystをベースにしたと思いますし、この記事でも書いたようにOpenGLドライバーはWin&Linuxで90%共通化されているので、Windows向けにMantleドライバーが出ても、Linux版、もしかしたらPS4版のドライバーで共通化されているのではないかなと思いますし……。

    確か11月にMantleの詳細をお披露目する機会があるみたいなので、もしかしたらSteamOSとも絡めて何らかの情報が得られるかもしれませんね。

    返信削除