summaryrefslogtreecommitdiff
path: root/gl33.xml
blob: 46a1251363c0ec019dc45757bb41a590871ca6b3 (plain)
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>