ps_2_x
プログラマブル ピクセル シェーダーは、ピクセル データを処理する一連の命令から成ります。レジスタは、ALU との間でデータをやり取りします。追加の制御を適用し、命令、結果、または書き出されるデータを変更することができます。
- 「ps_2_x 命令」には、利用できる命令の一覧が記載されています。
- 「レジスタ - ps_2_x」では、頂点シェーダー ALU が使用する各種のレジスタの一覧を示します。
- 「修飾子」は、命令の動作方法を変更するために使用します。
- 「デスティネーション レジスタ書き込みマスク」では、デスティネーション レジスタのどの要素に書き込むかを指定します。
- 「ソース レジスタ修飾子 (ピクセル シェーダー)」は、命令の実行前にソース レジスタのデータを変更します。
- 「ソース レジスタのスィズル」を使用すると、読み取り、コピー、または書き込みを行うレジスタ要素をより詳細に制御することができます。
動的フロー制御
DynamicFlowControlDepth は、動的フロー制御命令 if、 if_comp、 if_pred、 break - ps、および break_comp - ps のネストの深さを表します。この値は、if_comp ブロックのネストの深さと同等です。この能力が 0 の場合、デバイスは動的フロー制御命令をサポートしません。
テンポラリ レジスタの数
デバイスがサポートしているテンポラリ レジスターの数。この値の範囲は 12 ~ 32 です。
静的フロー制御のネストの深さ
StaticFlowControlDepth は、2 種類の静的フロー制御命令loop /rep および call /callnz のネストの深さを表します。loop /rep 命令は、StaticFlowControlDepth の深さまでネストすることができます。これとは別に、call/callnz 命令は StaticFlowControlDepth の深さまでネストできます。
命令スロットの数
命令スロットの数の範囲は、96 個から最大で 512 個までであり、MaxPixelShaderInstructionSlots で指定されます。実行可能な命令の総数は、MaxPixelShaderInstructionsExecuted で定義されます。ループやサブルーチン呼び出しがあると、この数は命令スロットの数より大きくなります。
任意の入れ換え
D3DD3DPSHADERCAPS2_0_ARBITRARYSWIZZLE が設定されている場合、任意のスイズルがサポートされています。「ソース レジスタのスィズル」を参照してください。
グラデーション命令
D3DD3DPSHADERCAPS2_0_GRADIENTINSTRUCTIONS が設定されている場合、グラデーション命令がサポートされています。「dsx - ps」、「dsy - ps」、および「texldd - ps」を参照してください。
プレディケーション
D3DD3DPSHADERCAPS2_0_PREDICATION が設定されている場合、命令のプレディケーションがサポートされています。「プレディケーション レジスタ」を参照してください。
従属読み込みの制限
D3DD3DPSHADERCAPS2_0_NODEPENDENTREADLIMIT が設定されている場合、従属読み取りに制限はありません。
テクスチャー命令の制限
D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT が設定されている場合、テクスチャー命令に制限はありません。
サンプラーのカウント
16 個のテクスチャー サンプラーを使用できます。