NAME
    ps_2_x - Direct3D Shader Model 2.0 Extended fragment profile for DirectX
    9

SYNOPSIS
      ps_2_x

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

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

      http://msdn2.microsoft.com/en-us/library/bb219844.aspx 

    This profile supports static and structured dynamic flow control.

3D API DEPENDENCIES
    Requires Direct3D 9 support.

    This profile generates code assuming the following Direct3D 9 pixel
    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 ps_2_x 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

    The varying input semantics in the ps_2_x profile correspond to the
    respectively named varying output semantics of the vs_2_x profile.

      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

    Sixteen texture units are supported:

      Binding Semantic Name            Corresponding Data

      TEXUNIT0                         Texture unit 0
      TEXUNIT1                         Texture unit 1
      ...
      TEXUNIT15                        Texture unit 15

  OUTPUT SEMANTICS

      COLOR                            Output color (float4)
      COLOR0
      COL0
      COL
 
      DEPTH                            Output depth (float)
      DEPR

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.

