> ## Name

> vs_2_sw - Direct3D Software Shader for Model 2.0 Extended vertex profile

> ## Synopsis

>       vs_2_sw

> ## Description

> This Direct3D profile corresponds to the per-vertex functionality introduced by GeForce FX (NV3x) for DirectX 9.

> The compiler output for this profile conforms to the textual assembly defined by the software version of DirectX 9's Vertex Shader 2.0 Extended shader format. See:

>       http://msdn.microsoft.com/en-us/library/bb172925.aspx

> This profile is useful for debugging and prototyping.

> ## 3D Api Dependencies

> Requires support for software vertex processing and a reference device.

> This profile generates code assuming the following Direct3D 9 Vertex shader capability bits are set:

>     D3DD3DPSHADERCAPS2_0_ARBITRARYSWIZZLE
>     D3DD3DPSHADERCAPS2_0_GRADIENTINSTRUCTIONS
>     D3DD3DPSHADERCAPS2_0_PREDICATION
>     D3DD3DPSHADERCAPS2_0_NODEPENDENTREADLIMIT
>     D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT

> ## Profile Options

> NumTemps=val
>   Number of 4-component vector temporaries the target implementation supports.
> NumInstructionSlots=val
>   Number of instructions the target implementation supports.
> MaxDrawBuffers=val
>   Number of draw buffers or Multiple Render Targets (MRT) the target implementation supports.

> ## Data Types

> half
>   The half data type makes use of the Partial Precision instruction modifier to request less precision.
>   NVIDIA GPUs may use half-precision floating-point when the Partial Precision instruction modifier is specified. Half-precision floating-point is encoded with a sign bit, 10 mantissa bits, and 5 exponent bits (biased by 16), sometimes called s10e5.
> float
>   The float data type corresponds to a floating-point representation with at least 24 bits.
>   NVIDIA GPUs supporting vs_2_sw use standard IEEE 754 single-precision floating-point encoding with a sign bit, 23 mantissa bits, and 8 exponent bits (biased by 128), sometimes called s10e5.
>   Older ATI GPUs use 24-bit floating-point.
> fixed
>   The fixed data type is treated like half.

> ## Semantics

> ## Input Semantics

>     Binding Semantics Name           Corresponding Data

>     COLOR                            Input primary color
>     COLOR0
>     COL
>     COL0

>     COLOR1                           Input secondary color
>     COL1

>     TEX0                             Input texture coordinate sets 0
>     TEXCOORD0

>     TEX1                             Input texture coordinate sets 1
>     TEXCOORD1

>     TEX2                             Input texture coordinate sets 2
>     TEXCOORD2

>     TEX3                             Input texture coordinate sets 3
>     TEXCOORD3

>     TEX4                             Input texture coordinate sets 4
>     TEXCOORD4

>     TEX5                             Input texture coordinate sets 5
>     TEXCOORD5

>     TEX6                             Input texture coordinate sets 6
>     TEXCOORD6

>     TEX7                             Input texture coordinate sets 7
>     TEXCOORD7

>     FOGP                             Input fog color (XYZ) and factor (W)
>     FOG

> ## Uniform Input Semantics

> Eight texture units are supported:

>     Binding Semantic Name            Corresponding Data

>     TEXUNIT0                         Texture unit 0
>     TEXUNIT1                         Texture unit 1
>     ...
>     TEXUNIT7                         Texture unit 7

> ## Output Semantics

>     Binding Semantics Name        Corresponding Data

>     POSITION, HPOS                Output position

>     PSIZE, PSIZ                   Output point size

>     FOG, FOGC                     Output fog coordinate

>     COLOR0, COL0                  Output primary color

>     COLOR1, COL1                  Output secondary color

>     BCOL0                         Output backface primary color

>     BCOL1                         Output backface secondary color

>     TEXCOORD0-TEXCOORD7,          Output texture coordinates
>     TEX0-TEX7

>     CLP0-CL5                      Output Clip distances

> ## Standard Library Issues

> Functions that compute partial derivatives are not supported.

> There are no restrictions on dependent texture reads (up to the instruction limit) for this profile.

> ## See Also

> ps_2_sw, vs_2_x