?/TD> |
Microsoft DirectX 9.0 |
This section contains reference information for the pixel shader version 3_0 instructions.
There are several types of pixel shader instructions, as shown in the table. Columns to the right mean the following:
Name | Description | Instruction slots | Setup | Arithmetic | Macro-ops | Texture | Flow control | New |
---|---|---|---|---|---|---|---|---|
abs | Absolute value | 1 | x | |||||
add | Add two vectors | 1 | x | |||||
break | Break out of a loop...endloop or rep...endrep block | 1 | x | x | ||||
break_comp | Conditionally break out of a loop...endloop or rep...endrep block, with a comparison | 3 | x | x | ||||
break pred | Break out of a loop...endloop or rep...endrep block, based on a predicate | 3 | x | x | ||||
call | Call a subroutine | 2 | x | x | ||||
callnz | Call a subroutine if a boolean register is not zero | 3 | x | |||||
callnz pred | Call a subroutine if a predicate register is not zero | 3 | x | x | ||||
cmp | Compare source to 0 | 1 | x | |||||
crs | Cross product | 2 | x | |||||
dcl_textureType | Declare the texture dimension for a sampler | 0 | x | |||||
dcl_usage | Declare the association between vertex shader output registers and pixel shader input registers. | 0 | x | x | ||||
def | Define constants | 0 | x | |||||
defb | Define a Boolean constant | 0 | x | x | ||||
defi | Define an integer constant | 0 | x | x | ||||
dp2add | 2-D dot product and add | 2 | x | |||||
dp3 | 3-D dot product | 1 | x | |||||
dp4 | 4-D dot product | 1 | x | |||||
dsx | Rate of change in the x-direction | 2 | x | |||||
dsy | Rate of change in the y direction | 2 | x | |||||
else | Begin an else block | 1 | x | |||||
endif | End an if...else block | 1 | x | |||||
endloop | endloop | 2 | x | x | ||||
endrep | End of a repeat block | 2 | x | |||||
exp | Full precision 2x | 1 | x | |||||
frc | Fractional component | 1 | x | |||||
if | Begin an if block | 3 | x | x | ||||
if comp | Begin an if block with a comparison | 3 | x | x | ||||
if pred | Begin an if block with predication | 3 | x | x | ||||
label | Label | 0 | x | |||||
log | Full precision log2(x) | 1 | x | |||||
loop | Loop | 3 | x | x | ||||
lrp | Linear interpolate | 2 | x | |||||
m3x2 | 3x2 multiply | 2 | x | |||||
m3x3 | 3x3 multiply | 3 | x | |||||
m3x4 | 3x4 multiply | 4 | x | |||||
m4x3 | 4x3 multiply | 3 | x | |||||
m4x4 | 4x4 multiply | 4 | x | |||||
mad | Multiply and add | 1 | x | |||||
max | Maximum | 1 | x | |||||
min | Minimum | 1 | x | |||||
mov | Move | 1 | x | |||||
mul | Multiply | 1 | x | |||||
nop | No operation | 1 | x | |||||
nrm | Normalize | 3 | x | |||||
pow | 2x | 3 | x | |||||
ps | Version | 0 | x | x | ||||
rcp | Reciprocal | 1 | x | |||||
rep | Repeat | 3 | x | |||||
ret | End of a subroutine | 1 | x | |||||
rsq | Reciprocal square root | 1 | x | |||||
setp | Set the predicate register | 1 | x | |||||
sincos | Sine and cosine | 8 | x | |||||
sub | Subtract | 1 | x | |||||
texkill | Kill pixel render | 2 | x | |||||
texld | Sample a texture | 1 + 3CUBE | x | |||||
texldb | Texture sampling with level of detail (LOD) bias from w-component | 6 | x | |||||
texldl | Texture sampling with LOD from w-component | 2 + 3CUBE | x | x | ||||
texldd | Texture sampling with user-provided gradients | 3 | x | x | ||||
texldp | Texture sampling with projective divide by w-component | 3 + 1CUBE | x |
Where: