blob: bb2c9310d389ce4bc433679a03684c8aafd76b7d [file] [log] [blame]
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