Introduction to the DirectX 9 Shader Models - Nvidia
Introduction to the DirectX 9 Shader Models - Nvidia Introduction to the DirectX 9 Shader Models - Nvidia
2.0 Pixel Shader Resources • 12 Temp registers • 8 4D texture coordinate iterators • 2 color iterators • 32 4D constants • 16 Samplers • Explicit output registers – oC0, oC1, oC2, oC3 and oDepth – Must be written with a mov • Some things removed – No source modifiers except negate – No instruction modifiers except saturate – No Co-issue
Argument Swizzles •.r, .rrrr, .xxxx or .x •.g, .gggg, .yyyy or .y •.b, .bbbb, .zzzz or .z •.a, .aaaa, .wwww or .w •.xyzw or .rgba (No swizzle) or nothing •.yzxw or .gbra (can be used to perform a cross product operation in 2 clocks) •.zxyw or .brga (can be used to perform a cross product operation in 2 clocks) •.wzyx or .abgr (can be used to reverse the order of any number of components)
- Page 1 and 2: Introduction to the DirectX 9 Shade
- Page 3 and 4: Legacy 1.x Shaders • No discussio
- Page 5 and 6: vs_2_0 • Longer programs • Inte
- Page 7 and 8: vs_2_0 • Old reliable ALU instruc
- Page 9 and 10: Changes to the VS numbers • 256 i
- Page 11 and 12: And some smaller details • Loadin
- Page 13 and 14: Setting Vertex Shader Registers •
- Page 15 and 16: Swizzles & Modifiers
- Page 17 and 18: Control Flow Instructions • Subro
- Page 19 and 20: Loops
- Page 21 and 22: HLSL and Conditionals • Initial r
- Page 23 and 24: Original HLSL Compiler Results vs_2
- Page 25 and 26: Begin Sim VS Sim
- Page 27 and 28: Caps for vs_2_x Sim • New D3DVSHA
- Page 29 and 30: Vertex Shader Predication - HLSL Si
- Page 31 and 32: Vertex Shader Predication Details S
- Page 33 and 34: Nested Static Flow Control Sim •
- Page 35 and 36: Dynamic Flow Control - HLSL Sim for
- Page 37 and 38: End Sim VS Sim
- Page 39: 2.0 Pixel Shader Instruction Set
- Page 43 and 44: ps.2.0 Review - Comparison with ps.
- Page 45 and 46: Caps for Pixel Shader 2.x D3DCAPS9
- Page 47 and 48: Pixel Shader 2.x • 512 instructio
- Page 49 and 50: Single Pass Lighting? • Sometimes
- Page 51 and 52: Single-Pass Lighting ? • Detailed
- Page 53 and 54: Single Pass Lighting? • Putting m
- Page 55 and 56: Single Pass Lighting? • It doesn
- Page 57 and 58: Lighting Render Loop • Per Light
- Page 59 and 60: Lighting Render Loop • Per-Object
- Page 61 and 62: Lighting Render Loop Summary • Go
- Page 63 and 64: Predication • Essentially a desti
- Page 65 and 66: Caveats for Conditional Instruction
- Page 67 and 68: Texture fetch with gradients • Gr
- Page 69 and 70: Arbitrary swizzling • Extremely u
- Page 71 and 72: Pixel Shader Precision • Low Prec
- Page 73 and 74: How to use fp16 • In HLSL or Cg,
- Page 75 and 76: Precision Pitfalls • An IEEE-like
- Page 77 and 78: Precision Pitfalls • Most precisi
- Page 79 and 80: Fully Fragment Shading? • Doing t
- Page 81 and 82: Precision Pitfalls • Avoid precis
- Page 83 and 84: Precision Summary • If high-preci
- Page 85 and 86: vs_3_0 • More flow-control • In
- Page 87 and 88: vs_3_0 inputs
- Page 89 and 90: vs_3_0 Output example vs_3_0 dcl_co
Argument Swizzles<br />
•.r, .rrrr, .xxxx or .x<br />
•.g, .gggg, .yyyy or .y<br />
•.b, .bbbb, .zzzz or .z<br />
•.a, .aaaa, .wwww or .w<br />
•.xyzw or .rgba (No swizzle) or nothing<br />
•.yzxw or .gbra (can be used <strong>to</strong> perform a cross<br />
product operation in 2 clocks)<br />
•.zxyw or .brga (can be used <strong>to</strong> perform a cross<br />
product operation in 2 clocks)<br />
•.wzyx or .abgr (can be used <strong>to</strong> reverse <strong>the</strong> order<br />
of any number of components)