次の方法で共有


dcl_indexRange (sm4 - asm)

インデックス (シェーダーで計算された整数) によってアクセスされるレジスタの範囲を宣言します。

minRegisterM、maxRegisterN のdcl_indexRange
Item 説明
minRegisterM
[入力]インデックスによってアクセスする最初のレジスタ。
  • minRegister は、頂点シェーダーまたはピクセル シェーダー入力レジスタの 場合は v 、頂点シェーダー出力レジスタの 場合は o です。
  • M はレジスタ番号を表す整数です。
maxRegisterN
[入力]インデックスによってアクセスする最後のレジスタ。 n がレジスタ番号である場合を除き、minRegister と同じ形式です。

すべてのレジスタには、次の制限が適用されます。

  • 最小レジスタと最大レジスタは同じ型で、同じコンポーネント マスクを持つ必要があります (マスクが宣言されている場合)。
  • レジスタは、重複しない限り、複数のインデックス範囲を持つことができます。
  • 最小レジスタ番号は、最大レジスタ番号より小さくする必要があります。
  • インデックス レジスタに システム値を含めることはできません。
  • 最大インデックス宣言の外部でレジスタのインデックスを作成すると、未定義の結果が生成されます。

ピクセル シェーダー入力レジスタでは、同じ補間モードを使用する必要があります。ピクセル シェーダー出力レジスタはインデックスを作成できません。

ジオメトリ シェーダー入力レジスタには、2 つのディメンション (頂点軸、属性軸) があります。頂点軸は常に完全にインデックスを作成できるため、インデックス範囲は属性軸にのみ適用されます。

この命令は、次のシェーダー ステージに適用されます。

頂点シェーダー ジオメトリ シェーダー ピクセル シェーダー
x x x

この命令は、アセンブリ内のシェーダーのデバッグに役立つよう含まれています。シェーダー モデル 4 を使用してアセンブリ言語でシェーダーを作成することはできません。

次に例を示します。

dcl_indexRange v1, v3
dcl_indexRange v4, v9

最小シェーダー モデル

この関数は、次のシェーダー モデルでサポートされています。

シェーダー モデル サポートされています
シェーダー モデル 5 はい
シェーダー モデル 4.1 はい
シェーダー モデル 4 はい
シェーダー モデル 3 (DirectX HLSL)
シェーダー モデル 2 (DirectX HLSL)
シェーダー モデル 1 (DirectX HLSL)

シェーダー モデル 4 アセンブリ (DirectX HLSL)