NAME
    fp30 - OpenGL fragment profile for NV3x (GeForce FX, Quadro FX, etc.)

SYNPOSIS
      fp30

DESCRIPTION
    This OpenGL profile corresponds to the per-fragment functionality
    introduced by the GeForce FX and Quadro FX line of NVIDIA GPUs.

    The compiler output for this profile conforms to the assembly format
    defined by NV_fragment_program.

    Data-dependent loops are not allowed; all loops must be unrollable.

    Conditional expressions are supported without branching so both
    conditions must be evaluated.

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

3D API DEPENDENCIES
    Requires OpenGL support for the NV_fragment_program extension. These
    extensions were introduced by the GeForce FX and Quadro FX GPUs.

PROFILE OPTIONS
    None.

DATA TYPES
    fixed   The fixed data type corresponds to a native signed fixed-point
            integers with the range [-2.0,+2.0), sometimes called *fx12*.
            This type provides 10 fractional bits of precision.

    half    The half data type corresponds to a floating-point encoding with
            a sign bit, 10 mantissa bits, and 5 exponent bits (biased by
            16), sometimes called *s10e5*.

    float   The half data type corresponds to a 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*.

SEMANTICS
  VARYING INPUT SEMANTICS

    The varying input semantics in the fp30 profile correspond to the
    respectively named varying output semantics of the vp30 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* supported.

