loop (sm4 - asm)
指定循环,该循环在遇到中断指令之前进行迭代。
loop |
---|
备注
循环 可以无限期迭代,尽管在执行一定数量的指令后可能会强制终止着色器的整体执行。
每个子例程和main,流控制块最多可嵌套 64 个深度。 HLSL 编译器不会生成超过此限制的子例程。 未定义每个子例程超过 64 个级别的控制流指令的行为。
为方便起见,标记格式包含着色器中相应 endloop 指令的偏移量。
以下示例演示如何使用 循环指令。
loop
// example of termination condition
if_nz r0.x
break
endif
...
endloop
此指令适用于以下着色器阶段:
顶点着色器 | 几何着色器 | 像素着色器 |
---|---|---|
x | x | x |
最小着色器模型
以下着色器模型中支持此函数。
着色器模型 | 支持 |
---|---|
着色器模型 5 | 是 |
着色器模型 4.1 | 是 |
着色器模型 4 | 是 |
着色器模型 3 (DirectX HLSL) | 否 |
着色器模型 2 (DirectX HLSL) | 否 |
着色器模型 1 (DirectX HLSL) | 否 |
相关主题