if bool - ps

Start of an if block.

Syntax

if bool

 

Where:

Remarks

Pixel shader versions 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
if bool x x x x

 

If the source Boolean register in the if statement is true, the code enclosed by the if statement and the matching endif - ps or else - ps is executed. Otherwise, the code enclosed by the else - ps...endif - ps statements is executed. This instruction consumes one instruction slot.

An if block can be nested.

An if block cannot straddle a loop block.

An if block can be followed by a statement block, and/or an else - ps instruction, and/or an endif - ps instruction.

Example

This instruction provides conditional static flow control.

defb b3, true

if b3
// Instructions to run if b3 is nonzero
else
// Instructions to run otherwise
endif

Pixel Shader Instructions

else - ps

endif - ps