15bd8deadSopenharmony_ciXXX - incomplete (needs number, errors, glx protocol, enumerant values, state)
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ciName
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ci    SGIX_instrument_error
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ciName Strings
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ci    GL_SGIX_instrument_error
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ciVersion
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ci    $Date: 1998/10/20 23:55:52 $  $Revision: 1.1 $
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ciNumber
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ci    XXX
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ciDependencies
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ci    SGIX_instruments is required
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ciOverview
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ci    This extension provides a mechanism by which implementations can
265bd8deadSopenharmony_ci    return errors resulting from instrument reads.
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ciIssues
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ci    *   We require that a failed instrument would have returned a
315bd8deadSopenharmony_ci        packet of at least length four.  Is this acceptable?
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ci        A: Four would give us an instrument name, a length field, a
345bd8deadSopenharmony_ci           single integer payload, and a marker.  This seems
355bd8deadSopenharmony_ci           reasonable -- anything shorter would be pretty useless.
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    *   Is it reasonable to require the failure packet that is
385bd8deadSopenharmony_ci        returned be the same length as the packet that would have been
395bd8deadSopenharmony_ci        returned by a successful read, or should we just say that it
405bd8deadSopenharmony_ci        may have padding and won't be longer?
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    *   Returning failure due to a context switch seems to break
435bd8deadSopenharmony_ci        GL's invariance requirement.  
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ci        A: This is unfortunate but we can't think of any way to make
465bd8deadSopenharmony_ci           some instruments work across context switches.  We either
475bd8deadSopenharmony_ci           return the error in GL or we silently fail or we have some
485bd8deadSopenharmony_ci           non-GL way to indicate failure.  Using GL seems the most
495bd8deadSopenharmony_ci           useful.  
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ci    *   If an instrument defined in another extension may return
525bd8deadSopenharmony_ci        failure, do we have to mention that in the new extension?  Or
535bd8deadSopenharmony_ci        can failure just be returned in place of any instrument packet
545bd8deadSopenharmony_ci        at any time?
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ciNew Tokens
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ci    Returned as the instrument name in an instrument buffer:
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci	INSTRUMENT_FAILED_SGIX			XXXX
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ci    None
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization)
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci    None
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
715bd8deadSopenharmony_ciand the Frame Buffer)
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci    None
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions)
765bd8deadSopenharmony_ci
775bd8deadSopenharmony_ci    Add to the end of section 5.X entitled Instruments:
785bd8deadSopenharmony_ci
795bd8deadSopenharmony_ci    If GL detects that an issued instrument read cannot return a
805bd8deadSopenharmony_ci    correct value, GL will return a failure packet in place of the
815bd8deadSopenharmony_ci    instrument packet.  The failure packet is intended to be used in
825bd8deadSopenharmony_ci    cases where there was no error on the part of the application but
835bd8deadSopenharmony_ci    GL could not satisfy the request for some reason.
845bd8deadSopenharmony_ci
855bd8deadSopenharmony_ci    A failure packet contains the following information (starting and
865bd8deadSopenharmony_ci    the first int):
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ci        INSTRUMENT_FAILED_SGIX
895bd8deadSopenharmony_ci        length in words of the packet
905bd8deadSopenharmony_ci        enumerant name of failed instrument
915bd8deadSopenharmony_ci        optional pad word 0
925bd8deadSopenharmony_ci        optional pad word 1
935bd8deadSopenharmony_ci            .
945bd8deadSopenharmony_ci            .
955bd8deadSopenharmony_ci            .
965bd8deadSopenharmony_ci        optional pad word n
975bd8deadSopenharmony_ci        marker value for read
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ci    The pad words are inserted such that the packet is the same length
1005bd8deadSopenharmony_ci    as the instrument packet that a successful read would have
1015bd8deadSopenharmony_ci    generated.  If the packet length for the given instrument is not a
1025bd8deadSopenharmony_ci    constant, the failure packet cannot be longer than the maximum
1035bd8deadSopenharmony_ci    length of a successful read.  The last int of the packet contains
1045bd8deadSopenharmony_ci    the user-specified marker value.  This mechanism requires that the
1055bd8deadSopenharmony_ci    maximum original length of the packet was not less than 4.
1065bd8deadSopenharmony_ci
1075bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests)
1085bd8deadSopenharmony_ci
1095bd8deadSopenharmony_ci    None
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ciAdditions to the GLX Specification
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci    None
1145bd8deadSopenharmony_ci
1155bd8deadSopenharmony_ciGLX Protocol
1165bd8deadSopenharmony_ci
1175bd8deadSopenharmony_ci    None
1185bd8deadSopenharmony_ci
1195bd8deadSopenharmony_ciErrors
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ci    None
122