1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
|
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="tasks.xsl"?>
<tasks name="OpenGL 3.3 Implementation Checklist">
<category name="GL 3.3 misc">
<task name="CompileShaderInvalid" specref="GL 3.3 2.11.1" mesa="N/A"
piglit="N/A">
CompileShader generates INVALID_OPERATION if shader is not the
name of a valid shader object generated by CreateShader.
Not necessary to test--this behaviour was contradictory and
removed in a later version of GL.
</task>
<task name="ActiveQueryDeletion" specref="GL 3.3 2.14" mesa="no">
If an active query object is deleted its name immediately
becomes unused, but the underlying object is not deleted until
it is no longer active.
</task>
<task name="NewPackedPixelFormats" specref="GL 3.3 3.7.2">
RGB_INTEGER, RGBA_INTEGER, and BGRA_I pixel formats are added to
table 3.5.
</task>
<task name="TextureBaseLevelError" specref="GL 3.3 3.8.8" piglit="done" mesa="done">
The error for setting TEXTURE_BASE_LEVEL to a value other than
zero is changed from INVALID_ENUM to INVALID_VALUE.
I believe Paul's referring to the TEXTURE_RECTANGLE case here, since
zero is the only allowable value for that target.
</task>
<task name="MultisampleAlphaInteger" specref="GL 3.3 4.1.3">
If drawbuffer zero is not NONE and the buffer it references has
an integer format, the SAMPLE_ALPHA_TO_COVERAGE and
SAMPLE_ALPHA_TO_ONE operations are skipped.
</task>
<task name="GetQueryObject64" specref="GL 3.3 6.1.7" piglit="done" mesa="done">
Functions GetQueryObjecti64v and GetQueryObjectui64v are added.
</task>
</category>
<category name="GLSL 3.30 misc">
<task name="Version330Supported" specref="GL 3.3 1.7.1" piglit="ML" mesa="done">
GLSL version 3.30 must be supported.
</task>
<task name="VersionMacro" specref="GLSL 3.30 3.3" piglit="ML" mesa="done">
__VERSION__ should substitute 330.
</task>
<task name="Link140-330" specref="GLSL 3.30 3.3">
GLSL 1.40, 1.50, and 3.30 shaders may be linked together.
</task>
<task name="LineDirectiveOffBy1" specref="GLSL 3.30 3.3">
The "#line x" directive signals line number x.
Previously it signalled line number x+1 (presumably this was a
spec error in GLSL 1.50).
</task>
</category>
<category name="ARB_explicit_attrib_location">
<task name="ARB_explicit_attrib_location">
Shaders no longer need to declare "#extension
GL_ARB_explicit_attrib_location..." to take advantage of this
functionality.
</task>
<task name="VertInput" specref="GLSL 3.30 4.3.8.1">
Vertex shaders allow location to be specified on input variable
declarations.
For example:
layout(location = 3) in vec4 normal;
is equivalent to:
glBindAttribLocation(prog, 3, "normal");
</task>
<task name="VertInputConflict" specref="GLSL 3.30 4.3.8.1">
A link error will occur if an input variable is declared in
multiple vertex shaders with conflicting locations.
</task>
<task name="VertInputOutOfRange" specref="GL 3.3 2.11.3">
A link error will occur if an input variable is assigned a
location greater than or equal to MAX_VERTEX_ATTRIBS.
</task>
<task name="VertInputOverridesApi" specref="GL 3.3 2.11.3">
If an active attribute has a binding explicitly set within the
shader text and a different binding assigned by
BindAttribLocation, the assignment in the shader text is used.
</task>
<task name="VertNoOutput" specref="GLSL 3.30 4.3.8.2">
Vertex shaders cannot have output layout qualifiers.
</task>
<task name="FragOutput" specref="GLSL 3.30 4.3.8.2">
Fragment shaders allow location to be specified on output
variable declarations.
For example:
layout(location = 3, index = 1) out vec4 factor;
establishes that factor is copied out to fragment color 3 as the
second (index one) input to the blend equation.
</task>
<task name="FragIndexRequiresLocation"
specref="GLSL 3.30 4.3.8.2">
In a fragment shader output location declaration, if index is
specified, location must also be specified.
</task>
<task name="FragIndexDefault" specref="GLSL 3.30 4.3.8.2">
In a fragment shader output location declaration, if index is
not specified, it defaults to 0.
</task>
<task name="FragOutputConflict" specref="GLSL 3.30 4.3.8.2">
A link error will occur if an output variable is declared in
multiple fragment shaders with conflicting locations or index
values.
</task>
<task name="FragOutputOverridesApi" specref="GL 3.3 3.9.2">
If a fragment output variable has a binding explicitly set
within the shader text and a different binding assigned by
BindFragDataLocationIndexed or BindFragDataLocation, the
assignment in the shader text is used.
</task>
</category>
<category name="ARB_shader_bit_encoding">
<task name="ARB_shader_bit_encoding" piglit="ML" mesa="ML">
Shaders no longer need to declare "#extension
GL_ARB_shader_bit_encoding..." to take advantage of this
functionality.
</task>
<task name="floatBitsToInt" specref="GLSL 3.30 8.3" piglit="ML" mesa="ML">
Function floatBitsToInt is added.
</task>
<task name="intBitsToFloat" specref="GLSL 3.30 8.3" piglit="ML" mesa="ML">
Function intBitsToFloat is added.
</task>
</category>
<category name="ARB_vertex_type_2_10_10_10_rev">
<task name="VertexAttribP" specref="GL 3.3 2.7" piglit="ui only" mesa="done">
Functions VertexAttribP{1234}ui and VertexAttribP{1234}uiv are
added.
</task>
<task name="VertexAttribPType" specref="GL 3.3 2.7" piglit="done" mesa="done">
When VertexAttribP{1234}ui and VertexAttribP{1234}uiv are used,
the type parameter must be INT_2_10_10_10_REV or
UNSIGNED_INT_2_10_10_10_REV.
</task>
<task name="VertexAttribPNormalize" specref="GL 3.3 2.8.2" piglit="done" mesa="done">
The "normalized" parameter of VertexAttribP{1234}ui and
VertexAttribP{1234}uiv specify whether input data is normalized.
During normalization, the conversion rules specified in
equations 2.1 and 2.2 are followed.
</task>
<task name="VertexAttribPointerType" specref="GL 3.3 2.8" piglit="done" mesa="done">
The types INT_2_10_10_10_REV and UNSIGNED_INT_2_10_10_10_REV may
be passed as the type parameter to VertexAttribPointer.
</task>
<task name="VertexAttribPointerSize" specref="GL 3.3 2.8" piglit="done" mesa="done">
If INT_2_10_10_10_REV or UNSIGNED_INT_2_10_10_10_REV is passed
to VertexAttribPointer, the size must be either 4 or BGRA.
</task>
<task name="2101010_Format" specref="GL 3.3 2.8.2" piglit="done" mesa="done">
Section 2.8.2 describes the precise format of INT_2_10_10_10_REV
and UNSIGNED_INT_2_10_10_10_REV vertex data formats.
</task>
</category>
<category name="ARB_instanced_arrays">
<task name="VertexAttribDivisor" specref="GL 3.3 2.8.3" piglit="done" mesa="done">
The function VertexAttribDivisor is added. Instanced elements
advance per instance depending on the value of the specified
divisor.
</task>
<task name="VertexAttribDivisorMaxIndex" specref="GL 3.3 2.8" piglit="done" mesa="done">
VertextAttribDivisor generates INVALID_VALUE if index is greater
than or equal to MAX_VERTEX_ATTRIBS.
</task>
<task name="VertexAttribDivisorQuery" specref="GL 6.1.11" piglit="no" mesa="done">
VERTEX_ATTRIB_ARRAY_DIVISOR may be passed to GetVertexAttrib*
functions.
</task>
<task name="VertexAttribDivisorDefault" specref="GL 6.2" piglit="done" mesa="done">
VERTEX_ATTRIB_ARRAY_DIVISOR defaults to 0.
</task>
</category>
<category name="ARB_texture_swizzle">
<task name="VertTextureAccessSwizzle" specref="GL 3.3 2.11.7" piglit="done" mesa="done">
Vertex shader texture access (and by extension, geometry shader
texture access) may be modified by texture swizzle.
</task>
<task name="FragTextureAccessSwizzle" specref="GL 3.3 3.9.7" piglit="done" mesa="done">
Fragment shader texture access may be modified by texture
swizzle.
</task>
<task name="TextureSwizzleParams" specref="GL 3.3 3.8.8" piglit="done" mesa="done">
TexParameter functions now accept TEXTURE_SWIZZLE_R,
TEXTURE_SWIZZLE_G, TEXTURE_SWIZZLE_B, TEXTURE_SWIZZLE_A, or
TEXTURE_SWIZZLE_RGBA.
</task>
<task name="GetTextureSwizzleParams" specref="GL 3.3 3.8.8" piglit="done" mesa="done">
GetTexParameter now accepts TEXTURE_SWIZZLE_R,
TEXTURE_SWIZZLE_G, TEXTURE_SWIZZLE_B, or TEXTURE_SWIZZLE_A.
</task>
</category>
<category name="ARB_sampler_objects">
<task name="SamplerObjectFunctions" specref="GL 3.3 3.8.2" piglit="done" mesa="done">
Functions GenSamplers and DeleteSamplers are added.
</task>
<task name="SamplerObjectSupersedes" specref="3.3 3.8.2">
When a sampler object is bound to a texture unit using
BindSampler, its state supersedes that of the texture object
bound to that texture unit.
</task>
<task name="BindSamplerZero" specref="3.3 3.8.2">
If the sampler name zero is bound to a texture unit, the
currently bound texture’s sampler state becomes active.
</task>
<task name="MultipleSamplerBindings" specref="3.3 3.8.2">
A single sampler object may be bound to multiple texture units
simultaneously.
</task>
<task name="SamplerObjectRules" specref="3.3 3.8.2">
Section 3.8.2 contains many rules for how sampler objects
behave.
</task>
<task name="SamplerObjectTexComplete" specref="3.3 3.8.14">
Effects of Sampler Objects on Texture Completeness
If a sampler object and a texture object are simultaneously
bound to the same texture unit, then the sampling state for that
unit is taken from the sampler object (see section 3.8.2). This
can have an effect on the effective completeness of the
texture. In particular, if the texture is not mipmap complete
and the sampler object specifies a TEXTURE_MIN_FILTER requiring
mipmaps, the texture will be considered incomplete for the
purposes of that texture unit. However, if the sampler object
does not require mipmaps, the texture object will be considered
complete. This means that a texture can be considered both
complete and incomplete simultaneously if it is bound to two or
more texture units along with sampler objects with different
states.
</task>
<task name="IsSampler" specref="GL 3.3 6.1.5" piglit="done" mesa="done">
IsSampler() may be called to determine whether sampler is the
name of a sampler object.
</task>
<task name="SamplerQueries" specref="GL 3.3 6.1.5" piglit="partial" mesa="partial">
The current values of a sampler object may be queried using
GetSamplerParameter{if}v and GetSamplerParameterI{i ui}v.
Piglit's sampler-objects.c tests some pnames, but not all of them.
Mesa appears to accept legacy pnames even in core profile.
</task>
<task name="SamplerQueryError" specref="GL 3.3 6.1.5" piglit="no" mesa="done">
GetSamplerParameter{if}v and GetSamplerParameterI{i ui}v
generate INVALID_VALUE if the sampler is not the name of a valid
sampler, and INVALID_ENUM if pname is not the name of a valid
property.
</task>
<task name="SamplerQueryBorderColor" specref="GL 3.3 6.1.5" piglit="no" mesa="done">
Querying TEXTURE_BORDER_COLOR with GetSamplerParameterIiv or
GetSamplerParameterIuiv returns the border color values as
signed integers or unsigned integers, respectively; otherwise
the values are returned as described in section 6.1.2.
</task>
<task name="QuerySamplerBinding" specref="GL 3.3 6.2" piglit="no" mesa="done">
The sampler object bound to a texture unit may be queried using
GetIntegerv(SAMPLER_BINDING).
</task>
</category>
<category name="ARB_blend_func_extended">
<task name="BindFragDataLocInd" specref="GL 3.3 3.9.2" piglit="done" mesa="done">
The function BindFragDataLocationIndexed is added.
</task>
<task name="GetFragDataIndex" specref="GL 3.3 3.9.2" piglit="done" mesa="done">
The function GetFragDataIndex is added.
</task>
<task name="LinkMaxDualSource" specref="GL 3.3 3.9.2">
Linking will fail if if the program has an active output
assigned to a location greater than or equal to the value of
MAX_DUAL_SOURCE_DRAW_BUFFERS and has an active output assigned
an index greater than or equal to one.
</task>
<task name="MinMaxDualSource" specref="GL 3.3 4.1.7" piglit="done" mesa="done">
The value of MAX_DUAL_SOURCE_DRAW_BUFFERS must be at least 1.
</task>
<task name="DrawMaxDualSource" specref="GL 3.3 4.1.7">
INVALID_OPERATION is generated by drawing functions if any draw
buffers greater than or equal to MAX_DUAL_SOURCE_DRAW_BUFFERS
have values other than NONE while either blend function requires
the second color input for any draw buffer.
</task>
<task name="DualSourceMultisample" specref="GL 3.3 4.1.3">
Multisample fragment operations are performed using alpha values
from fragment shader output number 0, index 0.
</task>
<task name="BlendFuncExtFormulas" specref="GL 3.3 4.1.7">
The blending formulas are extended to allow for an additional
source color.
</task>
</category>
<category name="ARB_occlusion_query2">
<task name="AnySamplesPassed" specref="GL 3.3 6.1.7" piglit="done" mesa="done">
Query type ANY_SAMPLES_PASSED is added.
</task>
<task name="AnySamplesPassedBits" specref="GL 3.3 6.1.7" piglit="done" mesa="done">
For occlusion queries with target ANY_SAMPLES_PASSED, if the
number of bits is non-zero, the minimum number of bits is 1.
</task>
</category>
<category name="ARB_timer_query">
<task name="QueryCounter" specref="GL 3.3 5.1" piglit="done" mesa="done">
The QueryCounter function is added.
</task>
<task name="BeginEndTimerQuery" specref="GL 3.3 5.1" piglit="no">
Timer queries can be used within a BeginQuery/EndQuery block
where the target is TIME_ELAPSED and it does not affect the
result of that query object.
</task>
<task name="QueryCounterInUse" specref="GL 3.3 5.1" piglit="no">
QueryCounter generates INVALID_OPERATION if id is already in use
within a BeginQuery/EndQuery block.
</task>
<task name="QueryTimestamp" specref="GL 3.3 5.1" piglit="done" mesa="done">
The current time may be queried by calling GetIntegerv or
GetInteger64v with the symbolic constant TIMESTAMP.
</task>
<task name="NewTimerQueries" specref="GL 3.3 6.1.7" piglit="done" mesa="done">
Query types TIME_ELAPSED and TIMESTAMP are added.
</task>
<task name="TimerQueryBits" specref="GL 3.3 6.1.7" piglit="no" mesa="done">
For timer queries (target TIME_ELAPSED and TIMESTAMP), if the
number of bits is non-zero, the minimum number of bits allowed
is 30.
</task>
</category>
<category name="ARB_texture_rgb10_a2ui">
<task name="Rgb10a2uiRequired" specref="GL 3.3 3.8.3" mesa="done">
RGB10_A2UI is added as a required texture and renderbuffer color
format.
</task>
<task name="Rgb10a2uiAdded" specref="GL 3.3 3.8.3" mesa="done">
RGB10_A2UI is added to table 3.12.
</task>
</category>
</tasks>
|