日別アーカイブ: 2008年8月14日

DirectX11 へ (D3D11)

MYCOM SIGGRAPH 2008 – NVIDIAが公開、DirectX 11世代の次世代GPUについて

DirectX11 への流れは思ったよりもずっと速いのかもしれません。
直前の Direct3D9 が長かったのでなおさらです。

API セットを一新した Direct3D8 はシェーダーへの流れを加速化し、
GPU の新たな可能性が明らかになりました。
D3D8 の欠点など小規模な改良修正を施し、将来を見据えて先の先の仕様まで
盛り込んだ D3D9 が出たのはわずか 2年後。
この後 D3D10 が出るまで 4年以上、長期にわたり D3D9 が使われ続けています。

汎用化の流れから再び仕様を完全に覆した D3D10 が登場しました。
それも今年の末でおよそ 2年。
足りない部分が明らかとなり、再びフィードバックの時期が来たのかもしれません。
この流れだと 11 はそれほど大幅な仕様変更ではなく、概念的には D3D10 を継承し、
比較的長期間使われるものになるのではないでしょうか。

上記 MYCOM JOURNAL の記事を見ると、パイプラインには新たに HullShader、
Tessellator、DomainShader が追加されています。

従来マルチパスレンダリングは、貧弱なピクセルパイプラインを補うのが目的でした。
その後 PixelShader に傾倒した高機能化が行われ、D3D9 ShaderModel3.0 で
この流れはほぼ一段落しています。

Direct3D10 ではむしろ StreamOutput を使ったジオメトリのためのマルチパスが
必要となりつつあります。
ジオメトリの場合は頂点数の増減など CPU へのフィードバックは難しく、
Index が展開されてしまう欠点もあります。

 (いっそ GPU 側だけで Draw 発行までできたらいいのですが、、
  Larrabee なら出来るのかもしれません。)

Direct3D 11 におけるパイプライン構成要素(HS、TS、DS)の追加は、
このようなジオメトリに対するマルチパス化要求とその問題点を
スマートに解決してくれるものと期待しています。