• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1XXX - incomplete
2
3Name
4
5    SGIX_bali_r_instruments
6
7Name Strings
8
9    GL_SGIX_bali_r_instruments
10
11Version
12
13    $Date: 1998/06/17 19:59:07 $  $Revision: 1.4 $
14
15Number
16
17    XXX
18
19Dependencies
20
21    SGIX_instruments is required
22    SGIX_multisample affects the definition of this extension.
23
24Overview
25
26    This extension defines behavior for instruments which are
27    maintained on the Bali R chips.  The behavior is different from
28    standard instruments behavior since each system may contain more
29    than one R chip.
30
31    Additionally, this extension defines two such instruments:  one to
32    count the number of fragments generated and a second to count the
33    number of fragments which passed the depth test.
34
35Issues
36
37    *	Should fragments generated by internal pixel operations be
38	counted?  From a GL point of view they don't exist, but from
39	an R usage point of view they do.
40
41    *	Should we expose the texture cache wait counter?  What could
42	the user do about a bottleneck caused by texture cache misses?
43
44    *	Currently we count only fragments which passed the depth test
45	and do not count fragments which were drawn when the depth
46	test was disabled.  Is this the correct behavior?
47
48    *	Are there any other R instruments we should add?
49
50New Procedures and Functions
51
52    None
53
54New Tokens
55
56    Accepted by the <cap> parameter of Enable, Disable and IsEnabled:
57
58        BALI_FRAGMENTS_GENERATED_INSTRUMENT	0x6090
59        BALI_DEPTH_PASS_INSTRUMENT		0x6091
60
61    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
62    GetFloatv, and GetDoublev:
63
64        BALI_R_CHIP_COUNT			0x6092
65
66Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
67
68    None
69
70Additions to Chapter 3 of the 1.0 Specification (Rasterization)
71
72    None
73
74Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
75and the Frame Buffer)
76
77    Add to section 4.1 after the introductory paragraph and prior to
78    section 4.1.1 (Pixel Ownership Test):
79
80    If BALI_FRAGMENTS_GENERATED_INSTRUMENT is enabled and the
81    instruments have been started via a call to StartInstrumentsSGIX,
82    a counter of the number of fragments generated is maintained.
83    This counter is incremented by one for each fragment.  The GL
84    implementation is not guaranteed to generate a fragment for every
85    screen pixel which the primitive touched as long as this
86    optimization will not affect the final image.  For example, if a
87    region of the primitive only contains fragments which the GL has
88    determined will fail the Z test, the fragments may not be
89    generated.  Therefore, the count of fragments generated may be
90    smaller than but may not be greater than the screen space area of
91    the primitive as determined by the number of pixels touched by the
92    primitive.
93
94    Added to subsection 4.1.5 (Depth buffer test) at the end of the
95    paragraph which begins "If the depth buffer test fails...":
96
97    If BALI_DEPTH_PASS_INSTRUMENT is enabled and instruments have been
98    started via a call to StartInstrumentSGIX, a counter of the number
99    of fragments which have passed the depth test is maintained.  This
100    counter is incremented by one for each fragment which passes the
101    depth test.  If MULTISAMPLE_SGIS is enabled, the counter is
102    incremented by one for each fragment containing at least one
103    sample for which the depth test passed.
104
105Additions to Chapter 5 of the 1.0 Specification (Special Functions)
106
107    Add to the end of section 5.X entitled Instruments:
108
109    For instruments which are computed on the Bali R chip, one
110    response will be returned to the buffer per R chip.  The number of
111    R chips is queried using the enum BALI_R_CHIP_COUNT (see Chapter
112    6).  From the point of view of this extension, the R chips are
113    considered to be completely interchangable and no mechanism for
114    identifying which response came from which R chip is provided.
115    Generally, the application should combine the results from all the
116    R chips together (for example, by adding them) before using the
117    information.
118
119    Each call to StopInstrumentsSGIX or ReadInstrumentsSGIX will
120    generate one response per R chip for each enabled R chip
121    instrument.  This count will be reflected in the return values of
122    glGetInstrumentSGIX.  The values from each R chip do not
123    necessarily return at the same time, so the glGetInstrumentsSGIX
124    call may return a value from 0 to BALI_R_CHIP_COUNT times the sum
125    in words of the size of the instrument.  However, the values from
126    each R are returned atomically from the point of view of
127    glGetInstrumentsSGIX so the return value must be a multiple of the
128    size in words of the instrument.
129
130    If more than one R instrument is enabled and ReadInstrumentsSGIX
131    or StopInstrumentsSGIX is called, no guarantees are made with
132    regard to the ordering and interleaving of the reply packets from
133    the R chips.  The instrument response packets from a single R chip
134    may or may not be placed consecutively in the buffer.  Conversely,
135    the responses from different R chips for a single instrument may
136    or may not be placed consecutively in the buffer.  Also, no
137    assumptions may be made about which R chip generated which
138    response.
139
140    Each R chip response from BALI_FRAGMENTS_GENERATED_INSTRUMENT_SGIX
141    and BALI_DEPTH_PASS_INSTRUMENT_SGIX instruments uses 4 words of
142    the buffer.  The first word (index 0) will be the enum name of the
143    instrument (BALI_FRAGMENTS_GENERATED_INSTRUMENT_SGIX or
144    BALI_DEPTH_PASS_INSTRUMENT_SGIX).  The second word (index 1) of
145    the instrument is the size in words of all the data returned by
146    the instrument, which is four for the instruments defined in this
147    extension.  The third word (index 2) will be the instrument
148    value.  Computation of the instrument values is described in
149    Chapter 3 (Rasterization).  The fourth word (index 3) will contain
150    the marker passed to StopInstrumentsSGIX or ReadInstrumentsSGIX.
151
152Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
153
154    XXX
155
156Additions to the GLX Specification
157
158    XXX
159
160Errors
161
162    None
163
164New State
165
166    XXX
167
168New Implementation Dependent State
169
170    Get Value				Get Command		Type		Minimum Value
171    ---------				-----------		----		-------------
172    BALI_R_CHIP_COUNT		GetIntegerv		 Z+		          1
173