米Microsoftは3月20日(現地時間)、米サンフランシスコで開催中のGame Developers Conference(GDC) 2014において、グラフィックスAPI「DirectX 12」のDirect3D 12に焦点を当てたプレビューを公開し、「グラフィックスAPIの新時代の幕開け」を宣言した。年内に他のテクノロジのプレビューも公開する予定で、2015年のホリデーシーズン向けのリリースを目指す。
DirectX 11のリリースは2009年。根本的な変化となったDirectX 10の登場から数えると6年以上が経過したDirectX。MicrosoftはモダンGPUのハードウエア能力を引き出し、効率的に高速化できるようにDirect3Dを再設計したという。
例えば、Forza Motorsport 5。Xbox One版では低レベルAPIの効率性を活かしたフォトリアリスティックなゲームを体験できるが、ForzaのDirect3D 12のPC技術デモは従来までコンソールゲーム機に限られたようなレベルの効率性を初期段階で実現している。こうした恩恵を得られるのはハイエンドのゲーミングPCだけではない。一般向けデスクトップPC、ノートPC、タブレット、スマートフォン、Xboxなど、あらゆるデバイスでDirect3D 12は効果を発揮するという。
MicrosoftはDirectXデベロッパーブログで、Direct3D 12のドライバおよびランタイムを用いたDirect3D 12アプリケーションの3DMark結果を公開している。Direct3D 11はマルチスレッディングを活用しているものの、ランタイムおよびドライバのオーバーヘッドによって少なからずコアごとのアイドル時間が発生している。Direct3D 12では、CPU利用が50%向上し、スレッドへの処理分配も改善した。
こうした効率性はどこから引き出されるのか? MicrosoftのMatt Sandy氏は、パイプラインステートの描画、ワークサブミッション、リソースアクセスの3点を挙げている。
パイプラインステートは、その多くを生成後すぐに確定するPipeline State Objects (PSOs)にまとめることで、GPUやドライバがすばやくPSOをGPUネイティブの命令やステートに変換できる。これによって、Direct3D 11 APIではドロータイムまでステートが確定せずに生じた遅延を解消した。Deferred Contextsについても、GPUが特定のワークロードを実行するのに必要な情報を揃えたコマンドリスト・ベースのワークサブミッション・モデルを導入することで、ハードウエアが効率的に処理できるようにした。またリソースの"ビュー"オブジェクトを異なるスロットにバインドしてコールドローが繰り返されないように、今日のGPUに適したバインディングモデルを採用した。