如果 (sm4 - asm)
基于逻辑或结果的分支。
if{_z|_nz} src0.select_component |
---|
项 | 说明 |
---|---|
src0 |
[in]包含要测试条件的组件。 |
备注
为了方便起见,令牌格式包含着色器中相应 endif 指令的偏移量。
以下示例演示如何使用此指令。
if_z r0.x // if all bits in r0.x are zero
...
else // (optional)
...
endif
if_nz r1.x // if any bit in r0.x is nonzero
...
else // (optional)
...
endif
限制
- 如果 4 个分量向量) 必须使用单个分量选择器,则源操作数 (。
- src0 提供的 32 位寄存器在位级别进行测试。 如果任一位为非零位, 则if_z 为 true。 如果所有位均为零, 则if_nz 为 true。
- 每个子例程 (和main) ,流控制块最多可嵌套 64 深。 HLSL 编译器不会生成超出此限制的子例程。 未定义每个子例程) 超过 64 个级别深 (的控制流指令的行为。
此指令适用于以下着色器阶段:
顶点着色器 | 几何着色器 | 像素着色器 |
---|---|---|
x | x | x |
最小着色器模型
以下着色器模型中支持此函数。
着色器模型 | 支持 |
---|---|
着色器模型 5 | 是 |
着色器模型 4.1 | 是 |
着色器模型 4 | 是 |
着色器模型 3 (DirectX HLSL) | 否 |
着色器模型 2 (DirectX HLSL) | 否 |
着色器模型 1 (DirectX HLSL) | 否 |