業界動向
新世代の低オーバーヘッドなグラフィックスAPI「Vulkan」,ついに正式始動
Vulkan 1.0 Specificationなどの入手先
Khronosのgitリポジトリ
Vulkanは,2015年3月開催のGame Developers Conference 2015(以下,GDC 2015)において,正式名称や概要が発表されていたAPIだ。当初は同年8月のSIGGRAPH 2015までに仕様を固める計画があったのだが,諸般の事情から仕様策定の期限が,2016年3月15日開幕予定のGame Developers Conference 2016(以下,GDC 2016)まで先送りされていた。その先送りされた期限目標に,めでたく間にあった格好である。
本稿では,Vulkan 1.0 Specificationの概要と,関連各社の対応を,簡単にまとめてみたい。
紆余曲折の末に登場したVulkan
低レベルなAPIは,ドライバのオーバーヘッド(overhead。ある処理に関連する,付加的な処理のこと。性能低下の原因になりやすい)を大幅に削減できると同時に,GPUが持つパワーをフルに発揮させやすい。また,GPUとCPUの負荷のバランスを適切にチューニングしやすくなる利点もある。
たとえば,「CPUが処理している間,GPUが“遊んで”しまう」といった負荷のアンバランスが生じると,GPUとCPU双方の潜在的な能力が生かせない。その点,オーバヘッドが低いAPIを使ってGPUとCPU双方の負荷バランスのチューニングを行えば,ハードウェアの性能をフルに発揮させることができるようになるというわけだ。
低レベルAPIの分野で先陣を切ったのは,2013年9月にAMDが自社のGPUやAPU向けに提供を開始した「Mantle」(現Mantle 1.0)である。さらに,MicrosoftがWindows 10とともにローンチした「DirectX 12」も低レベルAPI群を用意しており,Appleにも独自の「Metal」がある。なので,ゲーマーにも関係のある低レベルなグラフィックスAPIとして,Vulkanは4番めに登場したものということになるだろう。
その後,紆余曲折があったようだが,最終的に,MantleをベースとしてXGLの仕様策定が始まり,GDC 2015に合わせてVulkanという正式名称,そしてAPIの概要が発表となった。それから詰めの作業によって仕様が固まり,今回のバージョン1.0仕様書発表に至ったというわけである。
ゲームでは存在感を高める可能性があるVulkan
Windowsの低レベルグラフィックスAPIでは,AMDのMantleがフェードアウトし,DirectX 12が少しずつ存在感を増している。さらに,先に紆余曲折があったと述べたが,その1つとしては,Vulkan策定に至る前に,Appleがワーキンググループから離脱という“事件”もあった。Appleはその後,独自の低レベルグラフィックスAPIとして前出のMetalを提唱し,独自路線を突き進んでいる。
なので,今回の1.0仕様書リリースも,業界全体から「いよいよローレベルグラフィックスAPIの本命が登場した」と歓迎されたりしているわけではない。取り巻く状況は,決して穏やかなものではないのだ。
ただ,だからといってVulanに将来性がないとも言えない。というのも,Googleが同社のモバイル向けOS「Android 6.0 Marshmallow」におけるVulkan対応をいち早く表明しているからである。
言うまでもないが,Android OSを搭載する端末の数はPCをはるかに上回り,ゲームプラットフォームとしては世界最大のものとなっている。Androidの場合,別途,OSバージョンの分断問題があるので,いま述べた「世界最大のゲームプラットフォーム」が一斉にVulkanをサポートできるわけではないのだが,将来的に,Vulkanが主流のAPIとなる可能性はある。
ちなみに,Vulkan 1.0の発表に合わせて,PCの世界における3大グラフィックスハードウェアベンダーであるAMDとIntel,NVIDIAは,いずれもVulkan対応のβ版ドライバや開発キットの配布をスタートさせている。現時点における対応プラットフォームはAMDとNVIDIAがWindows,IntelがLinuxだ。
また,モバイルGPUベンダー大手のImagination TechnologiesはNexus Player向けドライバ,Qualcommは同社製GPUコアであるAdreno向けソフトウェア開発キット(SDK)の配布をそれぞれ開始済みだ。
AMDのVulkan 1.0対応ドライバ入手先
(GPUOpen.com内)
IntelのVulkan 1.0対応ドライバ入手先
(01.org内)
NVIDIAのVulkan 1.0対応ドライバ入手先
(NVIDIA内)
Imagination TechnologiesのVulkan 1.0対応ドライバ入手先
(Imagination Technologies内)
QualcommのVulkan 1.0対応SDK入手先
(Qualcomm内)
誤解がないよう付け加えておくと,Vulkanは,既存のOpenGLやOpenGL ESに代わるAPIではない。ハードウェアに近いVulkanは,プログラマーにとって使いやすいAPIとは言えないことから,よりソフトウェアに近い,扱いやすいAPIとして,KhronosはOpenGL系を今後も維持,発展させ続けていくとしている。
Vulkanの主なターゲットは,ゲーム及びゲームエンジン開発者だ。モバイルゲームの消費電力削減といった観点からも,Vulkanがモバイルから普及していく可能性は高く,モバイルをサポートするゲームエンジンがVulkanを採用するという展開は十分に考えられる。なのでゲーマーにとってもVulkanは要注目の技術ということになるだろう。
このタイミングでの正式リリースになった以上,GDC 2016でさまざまな取組みが明らかにされるはずなので,ゲーム関連の技術動向が気になる人は,ぜひ心に留めておいてほしいと思う。