Vertex Shader Differences
These are the differences between the vertex shader versions.
Version | Maximum number of instructions |
---|
1_1 | 128 |
2_0 | 256 |
2_0 Extended | 256. The number of instructions that run can be much higher because of looping. |
3_0 | 512 minimum, and up to the number of slots in the D3DCAPS9.MaxVertexShader30InstructionSlots. See D3DCAPS9. |
Version 3_0
New features:
- Static flow control nesting depth
- Dynamic flow control instructions - break, breakc, ifc
- Predication - setp instruction, p# register
- Number of temporary registers
- Indexing registers
- Vertex textures - texld texture address instruction
- Vertex stream frequency
Version 2_0 Extended
New features (with a cap set):
- Dynamic flow control instructions - break, breakc, ifc
- Predication - setp instruction, p# register
- Static flow control nesting depth
- Number of temporary registers
Version 2_0
New instructions:
- Setup instructions - defb, defi
- Arithmetic instructions - mova
- Macros - abs, crs, expp, logp, lrp, nrm, pow, sincos, slt
- Static flow control instructions - call, callnz, else, end, endif, endloop, endrep, if, label, loop, rep, ret
New registers - constant float, constant integer, constant Boolean, loop counter
Version 1_x
New instructions:
- Setup instructions - dcl, def, vs
- Arithmetic instructions - add, dp3, dp4, dst, lit, mad, max, min, mov, mul, nop, rcp, rsq, sge, slt, sub
- Macros - exp, frc, log, m3x2, m3x3, m3x4, m4x3, m4x4