?/TD>
Microsoft DirectX 9.0

setp (Pixel Shader)


Set the predicate register.

Syntax

setp_comp dst, src0, src1

Where:

Remarks

Pixel shader versions1_11_21_31_42_02_x2_sw3_03_sw
setpxxxx

This instruction operates as:

per channel in destination write mask
{
  dst.channel = src0.channel cmp src1.channel
}

For each channel that can be written according to the destination write mask, save the boolean result of the comparison operation between the corresponding channels of src0 and src1 (after the source modifier swizzles have been resolved).

Source registers allow arbitrary component swizzles to be specified.

The destination register allows arbitrary write masks.

The dest register must be the predicate register.

Applying the Predicate Register

Once the predicate register has been initialized with setp, it can be used to control an instruction per component. Here's the syntax:

([!]p0[.swizzle]) instruction dest, srcReg, ...

Where:

Assuming the predicate register has been set up with (true, true, false, false) component values, it can be applied to this instruction:

(p0) add r1, r2, r3

to perform a 2 component add.

r1.x = r2.x + r3.x
r1.y = r2.y + r3.y

The x and y components of r1 will not be written since the predicate register contained false in components z and w.

Applying the predicate register to an arithmetic or texture instruction increases it's instruction slot count by 1.

The predicate register can also be applied to if pred, callnz pred and break pred instructions. These flow control instructions do not have any increase in the instruction slot count when using the predicate register.

Minimum operating systemWindows 98


© 2002 Microsoft Corporation. All rights reserved.