Start an if bool - ps...else - ps...endif - ps block, with a condition based on values that could be computed in a shader. This instruction is used to skip a block of code, based on a condition.
if_comp src0, src1 |
---|
Where:
Syntax | Comparison |
---|---|
_gt | Greater than |
_lt | Less than |
_ge | Greater than or equal |
_le | Less than or equal |
_eq | Equal to |
_ne | Not equal to |
Pixel shader versions | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
if_comp | x | x | x | x |
This instruction is used to skip a block of code, based on a condition.
if (src0 comparison src1) jump to the corresponding else or endif instruction;
Be careful using the equals and not equals comparison modes on floating point numbers. Because rounding occurs during during floating point calculations, the comparison can be done against an epsilon value (small nonzero number) to avoid errors.
Restrictions include:
This instruction provides conditional dynamic flow control.
if_lt r3.x, r4.y // Instructions to run if r3.x < r4.y else // Instructions to run otherwise endif