fp40

> # NAME

> fp40 - OpenGL fragment profile for NV4x (GeForce 6xxx and 7xxx Series, NV4x-based Quadro FX, etc.)

> # SYNOPSIS

>       fp40

> # DESCRIPTION

> This OpenGL profile corresponds to the per-fragment functionality introduced by the GeForce 6800 and other NV4x-based NVIDIA GPUs.

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

> 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 OpenGL support for the NV_fragment_program2 extension. These extensions were introduced by the GeForce 6800 and other NV4x-based 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

>       FACE                             Polygon facing.
>                                        +1 for front-facing polygon or line or point
>                                        -1 for back-facing polygon

> ## 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.