if_comp - vs

启动 if bool - vs...else - vs...endif - vs 块,其条件基于可在着色器中计算的值。 此指令用于根据条件跳过代码块。

语法

if_comp src0、src1

 

其中:

  • _comp 是两个源寄存器之间的比较。 该参数可以是下列值之一:

    语法 比较
    _gt 大于
    _lt 小于
    _ge 大于或等于
    _le 小于或等于
    _eq 等于
    _ne 不等于

     

  • src0 是源寄存器。 要选择组件,需要复制重排。

  • src1 是源寄存器。 要选择组件,需要复制重排。

备注

顶点着色器版本 1_1 2_0 2_x 2_sw 3_0 3_sw
if_comp x x x x

 

此指令用于根据条件跳过代码块。

if_lt src0, src1
   jump to the corresponding else or endif instruction;

对浮点数使用等于和不等于比较模式时要小心。 由于舍入发生在浮点计算期间,因此可以对 epsilon 值(小的非零数)进行比较以避免错误。

具体限制包括:

示例

此指令提供条件动态流控制。

if_lt r3.x, r4.y
// Instructions to run if r3.x < r4.y

else
// Instructions to run otherwise

endif

顶点着色器指令