頂点シェーダーの相違
命令スロット
命令スロットの最大数はバージョンによって異なります。
バージョン | 命令スロットの最大数 |
---|---|
vs_1_1 | 128 |
vs_2_0 | 256 |
vs_2_x | 256 |
vs_3_0 | 512 (最小) ~ D3DCAPS9.MaxVertexShader30InstructionSlots のスロット数 (最大)。「D3DCAPS9」を参照してください。 |
ソフトウェア シェーダーの制限については、「ソフトウェア シェーダー」を参照してください。
フロー制御のネスト制限
- 「フロー制御のネスト制限」を参照してください。
vs_1_1 の機能
新しい命令:
「命令 - vs_1_1」を参照してください。
新しいレジスタ:
「レジスタ - vs_1_1」を参照してください。
vs_2_0 の機能
新しい機能:
- 静的フロー制御
- アドレス レジスタ (a0) の 4 つのコンポーネントはすべて利用できます。
新しい命令:
- セットアップ命令 - defb - vs、defi - vs
- 算術命令 - abs - vs、crs - vs、lrp - vs、mova - vs、nrm - vs、pow - vs、sgn - vs、sincos - vs
- 静的フロー制御命令 - call - vs、callnz bool - vs、else - vs、endif - vs、endloop - vs、endrep - vs、if bool - vs、label - vs、loop - vs、rep - vs、ret - vs
新しいレジスタ:
- ブール型定数レジスタ (b#)
- 整数型定数レジスタ (i#)
- ループ カウンター レジスタ (aL)
vs_2_x の機能
新しい機能 (D3DCAPS9.VS20Caps):
- 動的フロー制御
- 動的フロー制御命令および静的フロー制御命令のネスト
- テンポラリ レジスタ数 (r#) を増加
- プレディケーション
新しい命令:
- 動的フロー制御命令 - break - vs、break_comp - vs、breakp - vs、callnz pred - vs、if_comp - vs、if pred - vs、setp_comp - vs
新しいレジスタ:
- プレディケーション レジスタ (p0)
vs_3_0 の機能
新しい機能:
- テクスチャー ルックアップ
- インデックス生成可能な出力レジスタ (o#)
- テンポラリ レジスタ数 (r#) を 32 に増加
新しい命令:
- セットアップ命令 - dcl_samplerType (sm3 - vs asm)
- テクスチャー命令 - texldl - vs
新しいレジスタ: