1XXX - incomplete 2 3Name 4 5 SGIX_bali_g_instruments 6 7Name Strings 8 9 GL_SGIX_bali_g_instruments 10 11Version 12 13 $Date: 1998/10/02 18:20:28 $ $Revision: 1.5 $ 14 15Number 16 17 XXX 18 19Dependencies 20 21 SGIX_instruments is required 22 23Overview 24 25 This extension defines behavior for instruments which are 26 maintained on the Bali G chip. The behavior is similar to 27 standard instruments behavior since there is only one G ship. 28 29 Additionally, this extension defines four such instruments: one to 30 count the number of triangles culled, a second to count the number of primitives clipped, a third to count the number of primitives carried 31 through after clipping, and a fourth to count the number of primitives 32 rejected. 33 34Issues 35 36 * Are there any other G instruments we should add? 37 38 * Synchronization issues when G and R instruments are used simultaneously. 39 40New Procedures and Functions 41 42 None 43 44New Tokens 45 46 Accepted by the <cap> parameter of Enable, Disable and IsEnabled: 47 48 BALI_NUM_TRIS_CULLED_INSTRUMENT 0x6080 49 BALI_NUM_PRIMS_CLIPPED_INSTRUMENT 0x6081 50 BALI_NUM_PRIMS_REJECT_INSTRUMENT 0x6082 51 BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT 0x6083 52 53Additions to Chapter 2 of the 1.2 Specification (OpenGL Operation) 54 55 Add to the end of section 2.11 (Clipping): 56 57 If BALI_NUM_PRIMS_CLIPPED_INSTRUMENT is enabled and the instruments have 58 been started via a call to StartInstrumentsSGIX, a counter of the number of 59 primitives clipped is maintained. This counter is incremented by one for 60 each primitive that is clipped. 61 62 If BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT is enabled and the instruments have 63 been started via a call to StartInstrumentsSGIX, a counter of the number of 64 primitives after clipping is maintained. This counter is incremented by one 65 for each primitive that is carried through after clipping. 66 67 If BALI_NUM_PRIMS_REJECT_INSTRUMENT is enabled and the instruments have been 68 started via a call to StartInstrumentsSGIX, a counter of the number of 69 primitives rejected is maintained. This counter is incremented by one for 70 each prmitive that is rejected. 71 72Additions to Chapter 3 of the 1.2 Specification (Rasterization) 73 74 Add to section 3.5, between section 3.5.1 (Basic Polygon Rasterization) and 75 section 3.5.2 (Stippling): 76 77 If BALI_NUM_TRIS_CULLED_INSTRUMENT is enabled and the instruments have been 78 started via a call to StartInstrumentsSGIX, a counter of the number of 79 triangles culled is maintained. This counter is incremented by one for each 80 triangle that is culled. 81 82Additions to Chapter 4 of the 1.2 Specification (Per-Fragment Operations 83and the Frame Buffer) 84 85 None 86 87Additions to Chapter 5 of the 1.2 Specification (Special Functions) 88 89 Add to the end of section 5.X entitled Instruments: 90 91 Unlike the instruments computed on the Bali R chip, only one response is 92 returned to the buffer for the G chip since there is only one G chip. Each 93 call to StopInstrumentsSGIX or ReadInstrumentsSGIX will therefore generate 94 only one response for the G chip for each enabled G chip instrument. 95 96 Each G chip response from BALI_NUM_TRIS_CULLED_INSTRUMENT, 97 BALI_NUM_PRIMS_CLIPPED_INSTRUMENT, BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT, or 98 BALI_NUM_PRIMS_REJECT_INSTRUMENT uses 6 32-bit words of the buffer. The 99 first word (index 0) will be the enum name of the instrument 100 (BALI_NUM_TRIS_CULLED_INSTRUMENT, BALI_NUM_PRIMS_CLIPPED_INSTRUMENT, 101 BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT, or BALI_NUM_PRIMS_REJECT_INSTRUMENT). 102 The second word (index 1) of the instrument is the size in words of all the 103 data returned by the instrument, which is six for the instruments defined in 104 this extension. The fourth word (index 3) will be the instrument value. 105 (The preceeding word (index 2) would be a dummy word.) The fifth word would be 106 another dummy value. This will be followed by the sixth word 107 (index 5) that will contain the marker passed to StopInstrumentsSGIX or 108 ReadInstrumentsSGIX. The following is a simple diagram of how 109 this information will be passed down the pipe. Since the host and the pipe 110 will be communicating with 64-bits, three 64-bit packets will be sent down 111 the pipe for each measurement that is made. 112 113 ------------------------------------------------- 114 | | | 115 | [enabled enum name] | [size in words] | 116 | | | 117 ------------------------------------------------- 118 119 ------------------------------------------------- 120 | | | 121 | [dummy] | [instrument value] | 122 | | | 123 ------------------------------------------------- 124 125 ------------------------------------------------- 126 | | | 127 | [dummy] | [marker] | 128 | | | 129 ------------------------------------------------- 130 131 132Additions to Chapter 6 of the 1.2 Specification (State and State Requests) 133 134 XXX 135 136Additions to the GLX Specification 137 138 XXX 139 140Errors 141 142 None 143 144New State 145 146 XXX 147 148New Implementation Dependent State 149 150 None 151 152