if pred - vs

Start of an if pred - vs...else - vs...endif - vs block, with the condition taken from the content of the predicate register.


if [!]pred.replicateSwizzle



  • [!] an optional NOT modifier. This modifies the value in the predicate register.
  • pred is the predicate register, p0. See Predicate Register.
  • replicateSwizzle is a single component that is copied (or replicated) to all four components (swizzled). Valid components are: x, y, z, w or r, g, b, a.


Vertex shader versions1_12_02_x2_sw3_03_sw
if predxxxx


This instruction is used to skip a block of code, based on a channel of the predicate register. Each if_pred block must end with an else or endif instruction.

Restrictions include:

if_pred blocks can be nested. This counts to the total dynamic nesting depth along with if_comp blocks.

An if_pred block cannot straddle a loop block, it should be either completely inside it or surround it.

Related topics

Vertex Shader Instructions