Name

    ARB_shader_bit_encoding

Name Strings

    GL_ARB_shader_bit_encoding

Contributors

    Bill Licea-Kane

Contact

    Bill Licea-Kane (bill 'at' amd.com)

Notice

    Copyright (c) 2010-2013 The Khronos Group Inc. Copyright terms at
        http://www.khronos.org/registry/speccopyright.html

Status

    Complete. Approved by the ARB at the 2010/01/22 F2F meeting.
    Approved by the Khronos Board of Promoters on March 10, 2010.

Version

    Date: March 21, 2010
    Revision: 3
    $Id$

Number

    ARB Extension #82

Dependencies

    This extension is written against Version 1.50 (Revision 09) of the OpenGL
    Shading Language Specification.

    This extension is based on ARB_gpu_shader5.

Overview

    This extension trivially adds built-in functions for getting/setting
    the bit encoding for floating-point values in the OpenGL Shading Language.

    These functions are pulled out of ARB_gpu_shader5, since support for such
    built-in functions exists in current hardware.

IP Status

    No known IP claims.

New Procedures and Functions

    None

New Tokens

    None

Additions to Chapter 8 of the OpenGL Shading Language 1.50 Specification
(Built-in Functions)
    

    Modify Section 8.3, Common Functions, p. 84

    (add functions to get/set the bit encoding for floating-point values)

    32-bit floating-point data types in the OpenGL shading language are
    specified to be encoded according to the IEEE specification for
    single-precision floating-point values.  The functions below allow shaders
    to convert floating-point values to and from signed or unsigned integers
    representing their encoding.

    To obtain signed or unsigned integer values holding the encoding of a
    floating-point value, use:

      genIType floatBitsToInt(genType value);
      genUType floatBitsToUint(genType value);

    Conversions are done on a component-by-component basis.

    To obtain a floating-point value corresponding to a signed or unsigned
    integer encoding, use:

      genType intBitsToFloat(genIType value);
      genType uintBitsToFloat(genUType value);



Issues

    1) What should this extension be called?

    Resolved.  Currently ARB_shader_bit_encoding.

    2) Are there other built-in functions from ARB_gpu_shader5 that should
    be pulled in here?

    Resolved.  Given the deadline, hearing no additional candidates for
    exposing in current hardware, no.

    3) Are there other issues?

    Resolved.  Certainly.  They will be found in ARB_gpu_shader5.  This
    extension will track resolutions of ARB_gpu_shader5.  It is a simple
    subset of ARB_gpu_shader5.
 

Revision History

    2009-10-08
    1, wwlk
    first draft

    2009-10-22
    2, wwlk
    Rename to ARB (draft!)
    No additional features have been proposed.

    2010-03-21
    3, pbrown
    Update to rename references to "EXT_gpu_shader5" to "ARB_gpu_shader5".
