> ## Name

> arbfp1 - OpenGL fragment profile for multi-vendor ARB_fragment_program extension

> ## Synopsis

>       arbfp1

> ## Description

> This OpenGL profile corresponds to the per-fragment functionality introduced by GeForce FX and other DirectX 9 GPUs. This profile is supported by any OpenGL implementation that conformantly implements ARB_fragment_program.

> The compiler output for this profile conforms to the assembly format defined by ARB_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 multi-vendor ARB_fragment_program extension. This extension is supported by GeForce FX and later GPUS. ATI GPUs also support this extension.

> ## Opengl Extension Specifications

>      http://www.opengl.org/registry/specs/ARB/fragment_program.txt

> ## Profile Options

> NumTemps=n
>   Number of temporaries to use, 32 by default.
> NumInstructionSlots=n
>   Maximum allowable (static) instructions. Not an issue for NVIDIA GPUs.
> NumTexInstructionSlots=n
>   Maximum number of texture instructions to generate. Not an issue for NVIDIA GPUs, but important for ATI GPUs (set it to 32).
> NumMathInstructionSlots=n
>   Maximum number of math instructions to generate. Not an issue for NVIDIA GPUs, but important for ATI GPUs (set it to 64).
> MaxTexIndirections=n
>   Maximum number of texture indirections. Not an issue for NVIDIA GPUs, but important for ATI GPUs (set it to 4).
> ATI_draw_buffers
>   When multiple draw buffers are used, use the ATI_draw_buffers syntax so the generated code says `OPTION ATI_draw_buffers`. The default, if this option is not specified, is to use ARB_draw_buffers.
> ARB_draw_buffers
>   When multiple draw buffers are used, use the ARB_draw_buffers syntax so the generated code says `OPTION ARB_draw_buffers`. This option is the default.
> MaxDrawBuffers=n
>   Maximum draw buffers for use with ARB_draw_buffers. Set to 1 for NV3x GPUs. Use up to 4 for NV4x or ATI GPUs.
> MaxLocalParams=n
>   Maximum allowable local parameters.
> pixel_center_integer=b
>   Boolean to enable integer pixel centers.
> origin_upper_left=b
>   Boolean to enable upper left pixel origin.

> ## Data Types

> to-be-written

> ## Semantics

> ## Varying Input Semantics

> to-be-written

> ## Uniform Input Semantics

> to-be-written

> ## Output Semantics

> to-be-written

> ## Standard Library Issues

> to-be-written

> ## See Also

> arbvp1