XXX - incomplete Name SGIX_bali_g_instruments Name Strings GL_SGIX_bali_g_instruments Version $Date: 1998/10/02 18:20:28 $ $Revision: 1.5 $ Number XXX Dependencies SGIX_instruments is required Overview This extension defines behavior for instruments which are maintained on the Bali G chip. The behavior is similar to standard instruments behavior since there is only one G ship. Additionally, this extension defines four such instruments: one to count the number of triangles culled, a second to count the number of primitives clipped, a third to count the number of primitives carried through after clipping, and a fourth to count the number of primitives rejected. Issues * Are there any other G instruments we should add? * Synchronization issues when G and R instruments are used simultaneously. New Procedures and Functions None New Tokens Accepted by the parameter of Enable, Disable and IsEnabled: BALI_NUM_TRIS_CULLED_INSTRUMENT 0x6080 BALI_NUM_PRIMS_CLIPPED_INSTRUMENT 0x6081 BALI_NUM_PRIMS_REJECT_INSTRUMENT 0x6082 BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT 0x6083 Additions to Chapter 2 of the 1.2 Specification (OpenGL Operation) Add to the end of section 2.11 (Clipping): If BALI_NUM_PRIMS_CLIPPED_INSTRUMENT is enabled and the instruments have been started via a call to StartInstrumentsSGIX, a counter of the number of primitives clipped is maintained. This counter is incremented by one for each primitive that is clipped. If BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT is enabled and the instruments have been started via a call to StartInstrumentsSGIX, a counter of the number of primitives after clipping is maintained. This counter is incremented by one for each primitive that is carried through after clipping. If BALI_NUM_PRIMS_REJECT_INSTRUMENT is enabled and the instruments have been started via a call to StartInstrumentsSGIX, a counter of the number of primitives rejected is maintained. This counter is incremented by one for each prmitive that is rejected. Additions to Chapter 3 of the 1.2 Specification (Rasterization) Add to section 3.5, between section 3.5.1 (Basic Polygon Rasterization) and section 3.5.2 (Stippling): If BALI_NUM_TRIS_CULLED_INSTRUMENT is enabled and the instruments have been started via a call to StartInstrumentsSGIX, a counter of the number of triangles culled is maintained. This counter is incremented by one for each triangle that is culled. Additions to Chapter 4 of the 1.2 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: Unlike the instruments computed on the Bali R chip, only one response is returned to the buffer for the G chip since there is only one G chip. Each call to StopInstrumentsSGIX or ReadInstrumentsSGIX will therefore generate only one response for the G chip for each enabled G chip instrument. Each G chip response from BALI_NUM_TRIS_CULLED_INSTRUMENT, BALI_NUM_PRIMS_CLIPPED_INSTRUMENT, BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT, or BALI_NUM_PRIMS_REJECT_INSTRUMENT uses 6 32-bit words of the buffer. The first word (index 0) will be the enum name of the instrument (BALI_NUM_TRIS_CULLED_INSTRUMENT, BALI_NUM_PRIMS_CLIPPED_INSTRUMENT, BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT, or BALI_NUM_PRIMS_REJECT_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.) The fifth word would be another dummy value. This will be followed by the sixth word (index 5) that 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 down 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 XXX New Implementation Dependent State None