OpenGL extension SGIX.instruments
This module customises the behaviour of the
OpenGL.raw.GL.SGIX.instruments to provide a more
Overview (from the spec)
This extension allows the gathering and return of performance
measurements from within the graphics pipeline by adding
There are two reasons to do this. The first is as a part of some
type of fixed-frame-rate load management scheme. If we know that
the pipeline is stalled or struggling to process the amount of
data we have given it so far, we can reduce the level of detail of
the remaining objects in the current frame or the next frame, or
adjust the framebuffer resolution for the next frame if we have a
video-zoom capability available. We can call this type of
instrumentation Load Monitoring.
The second is for performance tuning and debugging of an
application. It might tell us how many triangles were culled or
clipped before being rasterized. We can call this simply Tuning.
Load Monitoring requires that the instrumentation and the access
of the measurements be efficient, otherwise the instrumentation
itself will reduce performance more than any load-management
scheme could hope to offset. Tuning does not have the same
The proposed extension adds a call to setup a measurements return
buffer, similar to FeedbackBuffer but with an asynchrounous
behavior to prevent filling the pipeline with NOP's while waiting
for the data to be returned.
Note that although the extension has been specified without any
particular instruments, defining either a device dependent or
device independent instrument should be as simple as introducing
an extension consisting primarily of a new enumerant to identify
The official definition of this extension is available here:
|EXTENSION_NAME = 'GL_SGIX_instruments'|
GL_INSTRUMENT_BUFFER_POINTER_SGIX = GL_INSTRUMENT_BUFFER_POINTER_SGIX
GL_INSTRUMENT_MEASUREMENTS_SGIX = GL_INSTRUMENT_MEASUREMENTS_SGIX
__file__ = '/home/mcfletch/pylive/OpenGL/GL/SGIX/instruments.pyc'
__name__ = 'OpenGL.GL.SGIX.instruments'
__package__ = 'OpenGL.GL.SGIX'
glGetInstrumentsSGIX = <OpenGL.platform.baseplatform.glGetInstrumentsSGIX object at 0x7a7e110>
glInstrumentsBufferSGIX = <OpenGL.platform.baseplatform.glInstrumentsBufferSGIX object at 0x7a7e150>
glPollInstrumentsSGIX = <OpenGL.platform.baseplatform.glPollInstrumentsSGIX object at 0x7a7ad10>
glReadInstrumentsSGIX = <OpenGL.platform.baseplatform.glReadInstrumentsSGIX object at 0x7a7e310>
glStartInstrumentsSGIX = <OpenGL.platform.baseplatform.glStartInstrumentsSGIX object at 0x7a7e350>
glStopInstrumentsSGIX = <OpenGL.platform.baseplatform.glStopInstrumentsSGIX object at 0x7a7e450>