15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ATI_texture_float
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ATI_texture_float
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Rob Mace, AMD (rob.mace 'at' amd.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciStatus
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Complete.
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciVersion
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    Last Modified Date: November 4, 2006
205bd8deadSopenharmony_ci    Revision: 5
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ciNumber
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ci    280
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ciDependencies
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ci    OpenGL 1.1 or EXT_texture is required.
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ci    The extension is written against the OpenGL 1.3 Specification.
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ciOverview
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ci    This extension adds texture internal formats with 32 and 16 bit
365bd8deadSopenharmony_ci    floating-point components.  The 32 bit floating-point components
375bd8deadSopenharmony_ci    are in the standard IEEE float format.  The 16 bit floating-point
385bd8deadSopenharmony_ci    components have 1 sign bit, 5 exponent bits, and 10 mantissa bits.
395bd8deadSopenharmony_ci    Floating-point components are clamped to the limits of the range
405bd8deadSopenharmony_ci    representable by their format.
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci
435bd8deadSopenharmony_ciIssues
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ci    1. Should we expose a GL_FLOAT16_ATI pixel type so that the 16 bit
465bd8deadSopenharmony_ci       float textures can be directly loaded?
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ci       RESOLUTION:  This will be exposed in a separate extension.
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ciNew Procedures and Functions
525bd8deadSopenharmony_ci
535bd8deadSopenharmony_ci   None
545bd8deadSopenharmony_ci
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ciNew Tokens
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ci    Accepted by the <internalFormat> parameter of TexImage1D,
595bd8deadSopenharmony_ci    TexImage2D, and TexImage3D:
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ci        RGBA_FLOAT32_ATI                 0x8814
625bd8deadSopenharmony_ci        RGB_FLOAT32_ATI                  0x8815
635bd8deadSopenharmony_ci        ALPHA_FLOAT32_ATI                0x8816
645bd8deadSopenharmony_ci        INTENSITY_FLOAT32_ATI            0x8817
655bd8deadSopenharmony_ci        LUMINANCE_FLOAT32_ATI            0x8818
665bd8deadSopenharmony_ci        LUMINANCE_ALPHA_FLOAT32_ATI      0x8819
675bd8deadSopenharmony_ci        RGBA_FLOAT16_ATI                 0x881A
685bd8deadSopenharmony_ci        RGB_FLOAT16_ATI                  0x881B
695bd8deadSopenharmony_ci        ALPHA_FLOAT16_ATI                0x881C
705bd8deadSopenharmony_ci        INTENSITY_FLOAT16_ATI            0x881D
715bd8deadSopenharmony_ci        LUMINANCE_FLOAT16_ATI            0x881E
725bd8deadSopenharmony_ci        LUMINANCE_ALPHA_FLOAT16_ATI      0x881F
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 1.3 Specification (OpenGL
775bd8deadSopenharmony_ciOperation)
785bd8deadSopenharmony_ci
795bd8deadSopenharmony_ci    Add a new Section 2.1.2, (p. 6):
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ci      2.1.2  16 Bit Floating-Point
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ci      A 16 bit floating-point number has 1 sign bit (s), 5 exponent
845bd8deadSopenharmony_ci      bits (e), and 10 mantissa bits (m).  The value (v) of a 16 bit
855bd8deadSopenharmony_ci      floating-point number is determined by the following pseudo code:
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci        if (e != 0)
885bd8deadSopenharmony_ci            v = (-1)^s * 2^(e-15) * 1.m  # normalized
895bd8deadSopenharmony_ci        else if (f == 0)
905bd8deadSopenharmony_ci            v = (-1)^s * 0               # zero
915bd8deadSopenharmony_ci        else
925bd8deadSopenharmony_ci            v = (-1)^s * 2^(e-14) * 0.m  # denormalized
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ci      It is acceptable for an implementation to treat denormalized 16 bit
955bd8deadSopenharmony_ci      floating-point numbers as zero.
965bd8deadSopenharmony_ci
975bd8deadSopenharmony_ci      There are no NAN or infinity values for 16 bit floating-point.
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 1.3 Specification (Rasterization)
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci    Section 3.8.1, (p. 116), change the last sentence on the page to:
1035bd8deadSopenharmony_ci
1045bd8deadSopenharmony_ci      Each R, G, B, and A value so generated is clamped based on the
1055bd8deadSopenharmony_ci      component type in the <internalFormat>.  Fixed-point components
1065bd8deadSopenharmony_ci      are clamped to [0, 1].  Floating-point components are clamped
1075bd8deadSopenharmony_ci      to the limits of the range representable by their format.  32
1085bd8deadSopenharmony_ci      bit floating- point components are in the standard IEEE float
1095bd8deadSopenharmony_ci      format.  16 bit floating-point components have 1 sign bit, 5
1105bd8deadSopenharmony_ci      exponent bits, and 10 mantissa bits.
1115bd8deadSopenharmony_ci
1125bd8deadSopenharmony_ci    Section 3.8.1, (p. 119), add the following to table 3.16:
1135bd8deadSopenharmony_ci
1145bd8deadSopenharmony_ci      Sized                       Base             R    G    B    A    L    I
1155bd8deadSopenharmony_ci      Internal Format             Internal Format bits bits bits bits bits bits
1165bd8deadSopenharmony_ci      --------------------------- --------------- ---- ---- ---- ---- ---- ----
1175bd8deadSopenharmony_ci      RGBA_FLOAT32_ATI            RGBA            f32  f32  f32  f32 
1185bd8deadSopenharmony_ci      RGB_FLOAT32_ATI             RGB             f32  f32  f32 
1195bd8deadSopenharmony_ci      ALPHA_FLOAT32_ATI           ALPHA                          f32
1205bd8deadSopenharmony_ci      INTENSITY_FLOAT32_ATI       INTENSITY                                f32
1215bd8deadSopenharmony_ci      LUMINANCE_FLOAT32_ATI       LUMINANCE                           f32
1225bd8deadSopenharmony_ci      LUMINANCE_ALPHA_FLOAT32_ATI LUMINANCE_ALPHA                f32  f32
1235bd8deadSopenharmony_ci      RGBA_FLOAT16_ATI            RGBA            f16  f16  f16  f16 
1245bd8deadSopenharmony_ci      RGB_FLOAT16_ATI             RGB             f16  f16  f16 
1255bd8deadSopenharmony_ci      ALPHA_FLOAT16_ATI           ALPHA                          f16
1265bd8deadSopenharmony_ci      INTENSITY_FLOAT16_ATI       INTENSITY                                f16
1275bd8deadSopenharmony_ci      LUMINANCE_FLOAT16_ATI       LUMINANCE                           f16
1285bd8deadSopenharmony_ci      LUMINANCE_ALPHA_FLOAT16_ATI LUMINANCE_ALPHA                f16  f16
1295bd8deadSopenharmony_ci
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 1.3 Specification (Per-Fragment
1325bd8deadSopenharmony_ciOperations and the Frame Buffer)
1335bd8deadSopenharmony_ci
1345bd8deadSopenharmony_ci    None
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ci
1375bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 1.3 Specification (Special 
1385bd8deadSopenharmony_ciFunctions)
1395bd8deadSopenharmony_ci
1405bd8deadSopenharmony_ci    None
1415bd8deadSopenharmony_ci
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 1.3 Specification (State and
1445bd8deadSopenharmony_ciState Requests)
1455bd8deadSopenharmony_ci
1465bd8deadSopenharmony_ci    None
1475bd8deadSopenharmony_ci
1485bd8deadSopenharmony_ci
1495bd8deadSopenharmony_ciErrors
1505bd8deadSopenharmony_ci  
1515bd8deadSopenharmony_ci    None
1525bd8deadSopenharmony_ci
1535bd8deadSopenharmony_ci
1545bd8deadSopenharmony_ciNew State
1555bd8deadSopenharmony_ci
1565bd8deadSopenharmony_ci    None
1575bd8deadSopenharmony_ci
1585bd8deadSopenharmony_ci
1595bd8deadSopenharmony_ciNew Implementation Dependent State
1605bd8deadSopenharmony_ci
1615bd8deadSopenharmony_ci    None
1625bd8deadSopenharmony_ci
1635bd8deadSopenharmony_ci
1645bd8deadSopenharmony_ciRevision History
1655bd8deadSopenharmony_ci
1665bd8deadSopenharmony_ci   Date: 11/4/2006
1675bd8deadSopenharmony_ci   Revision: 5
1685bd8deadSopenharmony_ci      - Updated contact info after ATI/AMD merger.
1695bd8deadSopenharmony_ci
1705bd8deadSopenharmony_ci   Date: 12/4/2002
1715bd8deadSopenharmony_ci   Revision: 4
1725bd8deadSopenharmony_ci      - Added Section 2.1.2 16 Bit Floating-Point.
1735bd8deadSopenharmony_ci
1745bd8deadSopenharmony_ci   Date: 9/11/2002
1755bd8deadSopenharmony_ci   Revision: 3
1765bd8deadSopenharmony_ci      - Changed description of float clamping to be consistent with
1775bd8deadSopenharmony_ci        WGL_ATI_pixel_format_float.
1785bd8deadSopenharmony_ci
1795bd8deadSopenharmony_ci   Date: 9/6/2002
1805bd8deadSopenharmony_ci   Revision: 2
1815bd8deadSopenharmony_ci      - Changed unsigned integer components to fixed-point components.
1825bd8deadSopenharmony_ci      - Resolved GL_FLOAT16_ATI issue.
1835bd8deadSopenharmony_ci      - Cleaned up typos.
1845bd8deadSopenharmony_ci
1855bd8deadSopenharmony_ci   Date: 8/18/2002
1865bd8deadSopenharmony_ci   Revision: 1
1875bd8deadSopenharmony_ci      - First draft for circulation.
188