NAME
    ps_3_0 - Direct3D Shader Model 3.0 fragment profile for DirectX 9

SYNOPSIS
      ps_3_0

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 3.0 shader format. See:

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

    Data-dependent loops *are* allowed with a limit of 256 iterations
    maximum. Four levels of nesting are allowed.

    Conditional expressions *can be* supported with data-dependent
    branching.

    Relative indexing of uniform arrays is not supported; use texture
    accesses instead.

3D API DEPENDENCIES
    Requires Direct3D 9 support.

PROFILE OPTIONS
    None.

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   float values in ps_3_0 require 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*.

    fixed   The fixed data type is treated like half.

SEMANTICS
  INPUT SEMANTICS

    The varying input semantics in the ps_3_0 profile correspond to the
    respectively named varying output semantics of the vs_3_0 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
    This profile may have limits on the number of dependent texture fetches.

SEE ALSO
    The OpenGL the fp40 manpage profile is rougly equivalent to the ps_3_0
    profile.

