GPU は処理する頂点をどのように認識しますか? それらのいくつかは索引付けされていない可能性があります。それらはまだ処理されますか?
インデックス バッファーと描画呼び出しの頂点の範囲によって、どの頂点が処理されるかが決まり、プリミティブ アセンブリ中の使用順序も定義されます。その範囲の頂点/インデックスに含まれていない頂点は、処理する必要はありません。
GPU は、頂点を処理する必要がある順序をどのように認識しますか? おそらく、三角形は VBO の最初と最後の頂点を使用するので、VBO 全体が処理されるまでプリミティブ アセンブリ ステージを待たなければならないのでしょうか?
プリミティブ アセンブリに到達するまでは、頂点が処理された順序は特に重要ではありません。頂点シェーダー レベルでの順序依存性はありません (頂点はすべて並列に処理されている可能性があります)。知っておく必要があるのは、頂点シェーダーの結果が変換後キャッシュと呼ばれる特別なバッファーに追加されることだけです。
ジオメトリ シェーダー (プログラム可能なプリミティブ アセンブリ) は、変換後のキャッシュから入力頂点をフェッチし、特定の順序でそれを行います。変換後キャッシュの従来の FIFO 実装を考えると、順序によってキャッシュの置き換えが決まり、ストリップベースのプリミティブは、プリミティブの組み立て中にキャッシュ ヒット率を最大化する傾向があります。変換後のキャッシュでキャッシュ ミスが発生するとストールが発生しますが、これはキャッシュにない頂点に対してのみです。頂点バッファー内のすべての頂点が不必要に処理されている間はストールしません。
幸いなことに、最近のほとんどのモデリング ソフトウェアはキャッシュ効率の高い順序で頂点を出力し、キャッシュはこれまで以上に大きくスマートになっているため、これについて頻繁に心配する必要はありません。15 年前、頂点キャッシュは非常にホットな話題でした。あなたが話した人は、何が最も効果的かについて独自の理論を持っていました。