XXX - incomplete Name SGIX_bali_timer_instruments Name Strings GL_SGIX_bali_timer_instruments Version $Date: 1998/10/02 18:20:29 $ prf $Revision: 1.2 $ Number XXX Dependencies SGIX_instruments is required Overview This extension defines two timing-related instruments: one to measure the time spent in the geometry subsystem, and another to measure the time spent in the rasterization subsystem. These instruments can be used to balance the load of the two subsystems and to fine-tune application performance. Issues XXX New Procedures and Functions None New Tokens Accepted by the parameter of Enable, Disable and IsEnabled: BALI_GEOM_TIMER_INSTRUMENT 0xXXXX BALI_RASTER_TIMER_INSTRUMENT 0xXXXX Accepted by the parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev: BALI_INSTRUMENT_TIME_UNIT 0xXXXX 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.2 Specification (Special Functions) Add to the end of section 5.X entitled Instruments: Timer instruments provide a method to measure and regulate the performance of the GL pipeline in terms of geometry and rasterization. Because most applications tend to be limited by either geometry processing or rasterization, timer instruments will enable an application to identify possible bottlenecks and undesired distribution of work between the two subsystems, and thereby to improve load-management. If BALI_GEOM_TIMER_INSTRUMENT is enabled and the instruments have been started via a call to StartInstrumentsSGIX, a counter of the amount of time spent in geometry subsystem is maintained. A similar counter is maintained for the time spend on rasterization if BALI_RASTER_TIMER_INSTRUMENT is enabled. The actual amount of time spent on geometry processing and rasterization returned by BALI_GEOM_TIMER_INSTRUMENT and BALI_RASTER_TIMER_INSTRUMENT, respectively, is calculated using the real time clock of the scalar processor (SP). The values returned by these instruments will be measured in time units. The length of a time unit can be queried using the enum INSTRUMENT_TIME_UNIT_SGIX (see Chapter 6). This number will be affected by processor speed and other implementation-specific considerations. Each response from BALI_GEOM_TIMER_INSTRUMENT and BALI_RASTER_TIMER_INSTRUMENT uses 6 32-bit words of the buffer. The first word (index 0) will be the enum name of the instrument (BALI_GEOM_TIMER_INSTRUMENT or BALI_RASTER_TIMER_INSTRUMENT). The second word (index 1) of the instrument is the size in words of all the data returned by the instrument, which is six for the instruments defined in this extension. The fourth word (index 3) will be the instrument value. (The preceeding word (index 2) would be a dummy word.) In future implementations, a 64-bit value may be used for the instrument value (this will occupy indices 2 and 3) instead of a 32-bit value. The fifth word (index 4) will be another dummy value. The sixth word (index 5) will contain the marker passed to StopInstrumentsSGIX or ReadInstrumentsSGIX. The following is a simple diagram of how this information will be passed down the pipe. Since the host and the pipe will be communicating with 64-bits, three 64-bit packets will be sent across the pipe for each measurement that is made. ------------------------------------------------- | | | | [enabled enum name] | [size in words] | | | | ------------------------------------------------- ------------------------------------------------- | | | | [dummy] | [instrument value] | | | | ------------------------------------------------- ------------------------------------------------- | | | | [dummy] | [marker] | | | | ------------------------------------------------- Additions to Chapter 6 of the 1.2 Specification (State and State Requests) XXX Additions to the GLX Specification XXX Errors None New State Initial Initial Get Value Get Command Type Value Attrib --------- ----------- ---- ----- ------ INSTRUMENT_TIME_UNIT_SGIX GetInteger Z 0 - New Implementation Dependent State None