ピクセル シェーダーの違い
命令スロット
各バージョンでは、異なる数の最大命令スロットがサポートされています。
バージョン | 命令スロットの最大数 |
---|---|
ps_1_1 | 4 テクスチャ + 8 算術 |
ps_1_2 | 4 テクスチャ + 8 算術 |
ps_1_3 | 4 テクスチャ + 8 算術 |
ps_1_4 | 6 テクスチャ + フェーズあたり 8 算術 |
ps_2_0 | 32 テクスチャ + 64 算術 |
ps_2_x | 最小 96 個、およびD3DCAPS9内のスロットの数まで。D3DPSHADERCAPS2_0.NumInstructionSlots. D3DPSHADERCAPS2_0を参照してください。 |
ps_3_0 | 最小 512、およびD3DCAPS9内のスロットの数まで。MaxPixelShader30InstructionSlots。 D3DPSHADERCAPS2_0を参照してください。 |
ソフトウェア シェーダーの制限事項については、「ソフトウェア シェーダーの 」を参照してください。
フロー制御の入れ子の制限
- フロー制御の制限事項を参照してください。
ps_1_x機能
新しい手順:
「ps_1_1、ps_1_2、ps_1_3、ps_1_4手順」を参照してください。
新しいレジスタ:
「ps_1_1__ps_1_2__ps_1_3__ps_1_4 レジスタの」を参照してください。
ps_2_0機能
新機能:
- 3 つの新しいスウィズル - .imgxw、.zxyw、.wzyx
- 一時レジスタ (r#) の数が 12 に増加しました
- 定数浮動小数点レジスタ レジスタの数 (c#) が 32 に増加しました
- テクスチャ座標レジスタの数 (t#) が 8 に増加しました
新しい手順:
- セットアップ手順 - dcl - (sm2, sm3 - ps asm), dcl_samplerType (sm2, sm3 - ps asm)
- 算術命令 - abs - ps, crs - ps, dp2add - ps, exp - ps, frc - ps, ログ - ps, m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps, m4x4 - ps, max - ps, min - ps, nrm - ps, pow - ps, rcp - ps, rsq - ps, sincos - ps
- テクスチャ命令 - texld - ps_2_0および up (異なる構文)、texldb - ps、texldp - ps
新しいレジスタ:
ps_2_x機能
新機能 (D3DPSHADERCAPS2_0を参照)。
- 動的フロー制御
- 静的フロー制御
- 動的および静的フロー制御命令の入れ子
- 一時レジスタの数 (r#) が増加しました
- 任意のソース スウィズル
- グラデーションの指示
- プレディケーション
- 依存テクスチャの読み取り制限なし
- テクスチャ命令の制限なし
新しい手順:
- 静的フロー制御命令 - bool - ps 、呼び出し - ps、callnz bool - ps、他 - ps、endif - ps, rep - ps, endrep - ps, ラベル - ps, ret - ps
- 動的フロー制御命令 - ブレーク - ps, break_comp - ps, breakp - ps, callnz pred - ps, if_comp - ps, (pred の場合) - ps, setp_comp - ps
- 算術命令 - dsx - ps, dsy - ps
- テクスチャ命令 - texldd - ps
新しいレジスタ:
- 述語レジスタ (p0)
ps_3_0機能
新機能:
- 統合 10 入力レジスタs (v#)
- ループ カウンター レジスタ (aL) を使用したインデックス可能な 入力カラー レジスタ (v#)
- 一時レジスタ数 (r#) が 32 に増加しました
- 定数浮動小数点数 数 (c#) が 224 に増加しました
新しい手順:
- セットアップ命令 - dcl_semantics (sm3 - ps asm)
- 静的フロー命令 - ループ - ps、 endloop - ps
- 算術命令 - sincos - ps (新しい構文)
- テクスチャ命令 - texldl - ps
新しいレジスタ:
- 入力レジスタ (v#)
- Position Register (vPos)
- Face Register (vFace)
関連トピック