Name

    ARB_shading_language_100

Name Strings

    GL_ARB_shading_language_100

Contact

    John Kessenich, 3Dlabs, Inc. (johnk 'at' 3dlabs.com)
    Barthold Lichtenbelt, NVIDIA (blichtenbelt 'at' nvidia.com)
    Jon Leech, SGI (ljp 'at' sgi.com)

Notice

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

Specification Update Policy

    Khronos-approved extension specifications are updated in response to
    issues and bugs prioritized by the Khronos OpenGL Working Group. For
    extensions which have been promoted to a core Specification, fixes will
    first appear in the latest version of that core Specification, and will
    eventually be backported to the extension document. This policy is
    described in more detail at
        https://www.khronos.org/registry/OpenGL/docs/update_policy.php

IP Status

    Microsoft claims to own unspecified intellectual property related to
    programmable shading.

Status

    Complete. Approved by the ARB on June 11, 2003.
    Updated revision 8 approved by the ARB on June 17, 2004.

Version

    Last Modified Date: April 6, 2004
    Revision: 8

Number

    ARB Extension #33

Dependencies

    This extension is written against the OpenGL 1.5 Specification

    ARB_shader_objects, ARB_fragment_shader, and ARB_vertex_shader are
    required to utilize the OpenGL Shading Language associated with this
    extension.

Overview

    This extension string indicates that the OpenGL Shading Language is
    supported. The Shading Language is defined by a separate specification
    document which can be downloaded from

        http://www.opengl.org/documentation/oglsl.html

Issues

    1) How do we indicate revisions in the supported version of the Shading
       Language?

        RESOLVED: Add a SHADING_LANGUAGE_VERSION query. This query was not
        present in the initial version of the extension. Therefore,
        applications should be prepared to detect an INVALID_ENUM error
        being raised by glGetString(GL_SHADING_LANGUAGE_VERSION). If this
        error is raised, but ARB_shading_language_100 is defined in the
        EXTENSIONS string, the application can assume that the initial
        release of the Shading Language (1.00, which was numbered "1.051"
        corresponding to document revision 51) is supported.

    2) What is the format of the SHADING_LANGUAGE_VERSION string? How does
       it map onto the release number of the shading language specification?

        RESOLVED: Identical to the VERSION string format:
        "major.minor[.release] [vendor info]". The release number is an
        optional vendor release number, not the shading language
        specification document release number (which is never visible to
        apps).

        The "1.051" release number of the initial Shading Language
        specification document corresponds to a SHADING_LANGUAGE_VERSION
        string of "1.00", since "51" was the revision number of the
        document, not the minor number.

        Going forward, the specification and query must always use the same
        encoding for major and minor numbers. The second release of the
        specification will be labelled "version 1.10, document revision 55",
        and the corresponding SHADING_LANGUAGE_VERSION string will be "1.10"
        (we chose to bump the minor version directly to 10 to avoid problems
        with leading 0s, and confusion with the old "1.051" document release
        number).

        Document release and vendor release numbers need not have any
        relation to each other, since they represent changes other than
        functionality, such as bug fixes and optimizations (for the
        implementation), and typos and errata for the specification).

        Functional changes to the shading language must always be indicated
        by an increase in the specification minor version number. Such
        changes may or may not correspond to changes to the core OpenGL
        version number as well, depending on whether or not they are visible
        in the OpenGL API.

    3) Should SHADING_LANGUAGE_VERSION be added to the state tables?

        RESOLVED: Yes. The other GetString queries (VERSION, EXTENSIONS,
        RENDERER, and VENDOR), which have been omitted in the past, should
        also be added, along with a new type code for string state values.

    4) What should the exact wording of the "IP Status" language be?

        Microsoft has made claims towards the low-level vertex shader and
        towards the generic programming framework proposed but not accepted
        into OpenGL 1.4, although that framework did not specify an actual
        shading language. Additional verbal statements made by Dave Aronson
        suggest that Microsoft may feel its claims extend to all
        programmable shading implementations. In fairness to implementers,
        we need to note the possibility of such a claim while also noting
        our lack of any specific information about what IP is being claimed.

New Tokens

    Accepted by the <name> parameter of GetString:

        SHADING_LANGUAGE_VERSION_ARB            0x8B8C

Additions to Chapter 6 of the OpenGL 1.5 Specification (State and State
Requests)

    Modify Section 6.1.11, Pointer and String Queries

    ... returns a pointer to a static string describing some aspect of the
    current GL connection(1).
       {footnote 1: Applications making copies of these static strings
        should never use a fixed-length buffer, because the strings may grow
        unpredictably over time resulting in buffer overflow when copying.
        This is particularly true of the EXTENSIONS string, which has become
        extremely long in some GL implementations.}
    The possible values for <name> are VENDOR, RENDERER, VERSION,
    SHADING_LANGUAGE_VERSION, and EXTENSIONS. The format of the RENDERER and
    VENDOR strings is implementation dependent. The EXTENSIONS string
    contains a space separated list of extension names (the extension names
    themselves do not contain any spaces). The VERSION and
    SHADING_LANGUAGE_VERSION strings are laid out as follows:

        <version number><space><vendor-specific information>

    The version number is either of the form <major_number.minor_number> or
    <major_number.minor_number.release_number>, where the numbers all have
    one or more digits. The <release_number> and vendor specific information
    are optional. However, if present, then they pertain to the server and
    their format and contents are implementation dependent.


    Add to Table 6.3, State variable types

        Type code   Explanation
        ---------   ----------------------
            S       NULL-terminated string

Errors

    The error INVALID_ENUM may be generated by GetString if <name> is
    SHADING_LANGUAGE_VERSION, but only the initial version of this extension
    is supported. In this case, the implementation will support the initial
    release (version 1.00, document version labelled "1.051") of the OpenGL
    Shading Language.

New Implementation Dependent State

    Added to table 6.30 (Implementation Dependent Values)

    Get Value                Type  Get Command  Minimum Description          Sec.    Attrib
                                                Value
    ---------                ----  -----------  ------- -----------          ----    ------
    EXTENSIONS               S     GetString       -    Supported extensions 6.1.11  -
    RENDERER                 S     GetString       -    Renderer string      6.1.11  -
    SHADING_LANGUAGE_VERSION S     GetString       -    Shading Language     6.1.11  -
        _ARB                                            version supported
    VENDOR                   S     GetString       -    Vendor string        6.1.11  -
    VERSION                  S     GetString       -    OpenGL version       6.1.11  -
                                                        supported

Revision History

   Date: 2004/04/06
   Revision: 8
      - Corrected several typos and noted an additional reason for going to
        minor release number 10 instead of 1 (ambiguity relative to the
        initial "1.051" document release number).

   Date: 2004/04/06
   Revision: 7
      - Clarified that the release_number field is also vendor information,
        and that the major.minor notation of the query and the shading
        language specification must match in the future. Noted that not
        supporting the query implies that version 1.00 of the shading
        language is supported.

   Date: 2004/04/05
   Revision: 6
      - Fixed some typos. Changed errors section to require that the initial
        version of the shading language be supported if the
        SHADING_LANGUAGE_VERSION query fails, but the extension is
        supported.

   Date: 2004/04/02
   Revision: 5
      - Assigned enum value to SHADING_LANGUAGE_VERSION. Corrected
        SHADER_VERSION to SHADING_LANGUAGE_VERSION in one place previously
        missed.

   Date: 2004/03/26
   Revision: 4
      - Changed query from SHADER_VERSION to SHADING_LANGUAGE_VERSION to
        match extension name. Added an issue to determine exact wording of
        the IP Status comment.

   Date: 2004/03/19
   Revision: 3
      - Resolved issues 2 and 3. Required that future shading language
        specification version numbers match the SHADER_VERSION format.
        Corrected omission of other GetString queries from the state tables.

   Date: 2004/03/14
   Revision: 2
      - Corrected URL to refer to opengl.org instead of 3dlabs.com.
      - Added SHADER_VERSION string query. Defined format of the shader
        version string and described fallback behavior for older
        implementations of the extension.
