XXX - incomplete (needs number, errors, glx protocol, enumerant values, state)

Name

    SGIX_instrument_error

Name Strings

    GL_SGIX_instrument_error

Version

    $Date: 1998/10/20 23:55:52 $  $Revision: 1.1 $

Number

    XXX

Dependencies

    SGIX_instruments is required

Overview

    This extension provides a mechanism by which implementations can
    return errors resulting from instrument reads.

Issues

    *   We require that a failed instrument would have returned a
        packet of at least length four.  Is this acceptable?

        A: Four would give us an instrument name, a length field, a
           single integer payload, and a marker.  This seems
           reasonable -- anything shorter would be pretty useless.

    *   Is it reasonable to require the failure packet that is
        returned be the same length as the packet that would have been
        returned by a successful read, or should we just say that it
        may have padding and won't be longer?

    *   Returning failure due to a context switch seems to break
        GL's invariance requirement.  

        A: This is unfortunate but we can't think of any way to make
           some instruments work across context switches.  We either
           return the error in GL or we silently fail or we have some
           non-GL way to indicate failure.  Using GL seems the most
           useful.  

    *   If an instrument defined in another extension may return
        failure, do we have to mention that in the new extension?  Or
        can failure just be returned in place of any instrument packet
        at any time?

New Tokens

    Returned as the instrument name in an instrument buffer:

	INSTRUMENT_FAILED_SGIX			XXXX

Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)

    None

Additions to Chapter 3 of the 1.0 Specification (Rasterization)

    None

Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
and the Frame Buffer)

    None

Additions to Chapter 5 of the 1.0 Specification (Special Functions)

    Add to the end of section 5.X entitled Instruments:

    If GL detects that an issued instrument read cannot return a
    correct value, GL will return a failure packet in place of the
    instrument packet.  The failure packet is intended to be used in
    cases where there was no error on the part of the application but
    GL could not satisfy the request for some reason.

    A failure packet contains the following information (starting and
    the first int):

        INSTRUMENT_FAILED_SGIX
        length in words of the packet
        enumerant name of failed instrument
        optional pad word 0
        optional pad word 1
            .
            .
            .
        optional pad word n
        marker value for read

    The pad words are inserted such that the packet is the same length
    as the instrument packet that a successful read would have
    generated.  If the packet length for the given instrument is not a
    constant, the failure packet cannot be longer than the maximum
    length of a successful read.  The last int of the packet contains
    the user-specified marker value.  This mechanism requires that the
    maximum original length of the packet was not less than 4.

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

    None

Additions to the GLX Specification

    None

GLX Protocol

    None

Errors

    None
