vs_2_x

プログラミング可能な頂点シェーダーは、頂点データを操作する命令のセットで構成されます。 ALU との間で転送データを登録します。 追加のコントロールを適用して、命令、結果、または書き込まれるデータを変更できます。

頂点シェーダー バージョン vs_2_xは、vs_2_0でサポートされているフィーチャ セットを拡張します。 各追加機能は、D3DVS20CAPS 内の D3DCAPS9 構造体の対応するキャップで表されます。 これらのキャップで表される拡張フィーチャのいずれかを使用するには、頂点シェーダーのバージョンをvs_2_xとして指定する必要があります。

新機能

新機能は次のとおりです。

動的フロー制御

D3DVS20CAPS> 0 の場合は、次の動的フロー制御命令がサポートされます。

D3DVS20CAPS も設定されている場合は、次の追加フロー制御命令がサポートされます。

動的フロー制御の深さの値の範囲は 0 から 24 で、動的フロー制御命令の入れ子の深さと同じです (詳細については、「 フロー制御の入れ子の制限 」を参照してください)。 この上限が 0 の場合、デバイスは動的フロー制御命令をサポートしません。

一時レジスタの数

D3DVS20CAPS は、デバイスでサポートされている 一時レジスタの数を表します。 この上限の値の範囲は 12 から 32 です。

静的フロー制御の入れ子の深さ

D3DVS20CAPS は、ループ - vs rep - vs/ and call- vscall - vscallnz bool - vs//if bool - vs. loop - vs/rep - vs instructions の 2 種類の静的フロー制御命令の入れ子の深さを表します。 個別に、call - vs/callnz bool - vs instructions は D3DVS20CAPS まで入れ子にすることができます。 D3DVS20CAPS も設定されている場合、 callnz pred - vs は、呼び出しの入れ子の深さ (vs/callnz bool - vs/if bool - vs) にカウントされます (詳細については、「 フロー制御の入れ子の制限 」を参照してください)。

プレディケーション

D3DVS20CAPS が設定されている場合、デバイスは setp_comp ( と 命令の割り当て) をサポートします。 D3DVS20CAPS も 0 より大きい場合は、次の追加の動的フロー制御命令がサポートされます。

命令数

各頂点シェーダーには、最大 256 個の命令を格納できます。 実行される命令の数ははるかに多くなる可能性があり (ループ/担当者のサポートのため)、 D3DCAPS9 によって上限が設定されます。これは少なくとも0xFFFFである必要があります。

頂点シェーダー