dcl_indexRange (sm4 - asm)

声明将由索引 (着色器) 中计算的整数访问的寄存器范围。

dcl_indexRange minRegisterM、maxRegisterN
说明
minRegisterM
[in]要按索引访问的第一个寄存器。
  • minRegister 对于顶点或像素着色器输入寄存器为 v ,对于顶点着色器输出寄存器为 o
  • M 是表示寄存器编号的整数。
maxRegisterN
[in]按索引访问的最后一个寄存器。 与 minRegister 的格式相同,但 N 是寄存器编号。

以下限制适用于所有寄存器:

  • 如果掩码声明) ,最小寄存器和最大寄存器的类型必须相同,并且具有相同的组件掩码 (。
  • 寄存器可以有多个索引范围,只要它们不重叠。
  • 最小寄存器号必须小于最大寄存器号。
  • 索引寄存器不能包含 系统值
  • 在最大索引声明之外为寄存器编制索引会产生未定义的结果。

像素着色器输入寄存器必须使用相同的内插模式;像素着色器输出寄存器不可编制索引。

几何着色器输入寄存器具有两个维度 (顶点轴、属性轴) :索引范围仅适用于属性轴,因为顶点轴始终是完全可编制索引的。

此指令适用于以下着色器阶段:

顶点着色器 几何着色器 像素着色器
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)