1 # -*- coding: utf-8 -*-
2 # All tests that come with piglit, using default settings
4 from __future__
import (
5 absolute_import
, division
, print_function
, unicode_literals
11 from six
.moves
import range
13 from framework
import grouptools
14 from framework
import options
15 from framework
.profile
import TestProfile
16 from framework
.driver_classifier
import DriverClassifier
17 from framework
.test
.piglit_test
import (
18 PiglitGLTest
, PiglitBaseTest
, BuiltInConstantsTest
20 from .py_modules
.constants
import TESTS_DIR
, GENERATED_TESTS_DIR
24 # Disable bad hanging indent errors in pylint
25 # There is a bug in pylint which causes the profile.test_list.group_manager to
26 # be tagged as bad hanging indent, even though it seems to be correct (and
27 # similar syntax doesn't trigger an error)
28 # pylint: disable=bad-continuation
30 # Shadowing variables is a bad practice. It's just nearly impossible with the
31 # format of this module to avoid it.
32 # pylint: disable=redefined-outer-name
35 def add_single_param_test_set(adder
, name
, *params
):
37 adder([name
, param
], '{}-{}'.format(name
, param
), run_concurrent
=False)
40 def add_depthstencil_render_miplevels_tests(adder
, test_types
):
41 # Note: the buffer sizes below have been chosen to exercise
42 # many possible combinations of buffer alignments on i965.
43 for texture_size
in ['146', '273', '292', '585', '1024']:
44 for test_type
in test_types
:
45 adder(['depthstencil-render-miplevels', texture_size
, test_type
],
49 def add_fbo_stencil_tests(adder
, format
):
50 adder(['fbo-stencil', 'clear', format
],
51 'fbo-stencil-{}-clear'.format(format
))
52 adder(['fbo-stencil', 'readpixels', format
],
53 'fbo-stencil-{}-readpixels'.format(format
))
54 adder(['fbo-stencil', 'drawpixels', format
],
55 'fbo-stencil-{}-drawpixels'.format(format
))
56 adder(['fbo-stencil', 'copypixels', format
],
57 'fbo-stencil-{}-copypixels'.format(format
))
58 adder(['fbo-stencil', 'blit', format
],
59 'fbo-stencil-{}-blit'.format(format
))
62 def add_fbo_depthstencil_tests(adder
, format
, num_samples
):
64 'add_fbo_depthstencil_tests argument "format" cannot be empty'
66 if format
== 'default_fb':
73 if int(num_samples
) > 1:
74 suffix
= ' samples=' + num_samples
75 psamples
= '-samples=' + num_samples
80 adder(['fbo-depthstencil', 'clear', format
, psamples
],
81 '{}depthstencil-{}-clear{}'.format(prefix
, format
, suffix
),
82 run_concurrent
=concurrent
)
83 adder(['fbo-depthstencil', 'readpixels', format
, 'FLOAT-and-USHORT',
85 '{}depthstencil-{}-readpixels-FLOAT-and-USHORT{}'.format(
86 prefix
, format
, suffix
),
87 run_concurrent
=concurrent
)
88 adder(['fbo-depthstencil', 'readpixels', format
, '24_8', psamples
],
89 '{}depthstencil-{}-readpixels-24_8{}'.format(prefix
, format
, suffix
),
90 run_concurrent
=concurrent
)
91 adder(['fbo-depthstencil', 'readpixels', format
, '32F_24_8_REV', psamples
],
92 '{}depthstencil-{}-readpixels-32F_24_8_REV{}'.format(
93 prefix
, format
, suffix
),
94 run_concurrent
=concurrent
)
95 adder(['fbo-depthstencil', 'drawpixels', format
, 'FLOAT-and-USHORT',
97 '{}depthstencil-{}-drawpixels-FLOAT-and-USHORT{}'.format(
98 prefix
, format
, suffix
),
99 run_concurrent
=concurrent
)
100 adder(['fbo-depthstencil', 'drawpixels', format
, '24_8', psamples
],
101 '{}depthstencil-{}-drawpixels-24_8{}'.format(prefix
, format
, suffix
),
102 run_concurrent
=concurrent
)
103 adder(['fbo-depthstencil', 'drawpixels', format
, '32F_24_8_REV', psamples
],
104 '{}depthstencil-{}-drawpixels-32F_24_8_REV{}'.format(
105 prefix
, format
, suffix
),
106 run_concurrent
=concurrent
)
107 adder(['fbo-depthstencil', 'copypixels', format
, psamples
],
108 '{}depthstencil-{}-copypixels{}'.format(prefix
, format
, suffix
),
109 run_concurrent
=concurrent
)
110 adder(['fbo-depthstencil', 'blit', format
, psamples
],
111 '{}depthstencil-{}-blit{}'.format(prefix
, format
, suffix
),
112 run_concurrent
=concurrent
)
115 def add_msaa_visual_plain_tests(adder
, args
, **kwargs
):
116 assert isinstance(args
, list)
118 adder(args
, **kwargs
)
119 for sample_count
in MSAA_SAMPLE_COUNTS
:
120 adder(args
+ ['-samples={}'.format(sample_count
)],
121 ' '.join(args
+ ['samples={}'.format(sample_count
)]),
125 def add_fbo_formats_tests(adder
, extension
, suffix
=''):
126 adder(['fbo-generatemipmap-formats', extension
],
127 'fbo-generatemipmap-formats{}'.format(suffix
))
128 adder(['fbo-clear-formats', extension
],
129 'fbo-clear-formats{}'.format(suffix
))
130 adder(['get-renderbuffer-internalformat', extension
],
131 'get-renderbuffer-internalformat{}'.format(suffix
))
132 if 'depth' not in extension
and 'stencil' not in extension
:
133 adder(['fbo-blending-formats', extension
],
134 'fbo-blending-formats{}'.format(suffix
))
135 adder(['fbo-alphatest-formats', extension
],
136 'fbo-alphatest-formats{}'.format(suffix
))
137 adder(['fbo-colormask-formats', extension
],
138 'fbo-colormask-formats{}'.format(suffix
))
139 adder(['ext_framebuffer_multisample-fast-clear',
142 'fbo-fast-clear{}'.format(suffix
))
145 def add_msaa_formats_tests(adder
, extension
):
146 for sample_count
in MSAA_SAMPLE_COUNTS
:
147 adder(['ext_framebuffer_multisample-formats', sample_count
,
149 'multisample-formats {} {}'.format(sample_count
, extension
))
150 adder(['ext_framebuffer_multisample-fast-clear', extension
],
151 'multisample-fast-clear {}'.format(extension
))
154 def add_texwrap_target_tests(adder
, target
):
155 adder(['texwrap', target
, 'GL_RGBA8'],
156 'texwrap {}'.format(target
))
158 adder(['texwrap', target
, 'GL_RGBA8', 'offset'],
159 'texwrap {} offset'.format(target
))
160 adder(['texwrap', target
, 'GL_RGBA8', 'bordercolor'],
161 'texwrap {} bordercolor'.format(target
))
162 adder(['texwrap', target
, 'GL_RGBA8', 'proj'],
163 'texwrap {} proj'.format(target
))
164 adder(['texwrap', target
, 'GL_RGBA8', 'proj', 'bordercolor'],
165 'texwrap {} proj bordercolor'.format(target
))
168 def add_texwrap_format_tests(adder
, ext
='', suffix
=''):
169 args
= [] if ext
== '' else [ext
]
170 adder(['texwrap'] + args
, 'texwrap formats{}'.format(suffix
))
171 if 'compression' not in ext
and 's3tc' not in ext
:
172 adder(['texwrap'] + args
+ ['offset'],
173 'texwrap formats{} offset'.format(suffix
))
174 adder(['texwrap'] + args
+ ['bordercolor'],
175 'texwrap formats{} bordercolor'.format(suffix
))
176 adder(['texwrap'] + args
+ ['bordercolor', 'swizzled'],
177 'texwrap formats{} bordercolor-swizzled'.format(suffix
))
180 def add_fbo_depth_tests(adder
, format
):
181 adder(['fbo-depth-tex1d', format
], 'fbo-depth-{}-tex1d'.format(format
))
182 adder(['fbo-depth', 'clear', format
], 'fbo-depth-{}-clear'.format(format
))
183 adder(['fbo-depth', 'readpixels', format
],
184 'fbo-depth-{}-readpixels'.format(format
))
185 adder(['fbo-depth', 'drawpixels', format
],
186 'fbo-depth-{}-drawpixels'.format(format
))
187 adder(['fbo-depth', 'copypixels', format
],
188 'fbo-depth-{}-copypixels'.format(format
))
189 adder(['fbo-depth', 'blit', format
], 'fbo-depth-{}-blit'.format(format
))
193 """Generate all possible subsets of the given set, including the empty set.
198 for p
in power_set(s
[:-1]):
200 result
.append(p
+ [s
[-1]])
204 # Collecting all tests
205 profile
= TestProfile() # pylint: disable=invalid-name
207 # Find and add all apitrace tests.
208 classifier
= DriverClassifier()
209 for basedir
in [os
.path
.join(TESTS_DIR
, 'apitrace', 'traces')]:
210 for dirpath
, _
, filenames
in os
.walk(basedir
):
211 base_group
= grouptools
.from_path(os
.path
.join(
212 'apitrace', os
.path
.relpath(dirpath
, basedir
)))
214 for filename
in filenames
:
215 if not os
.path
.splitext(filename
)[1] == '.trace':
217 group
= grouptools
.join(base_group
, filename
)
219 profile
.test_list
[group
] = PiglitBaseTest(
220 [os
.path
.join(TESTS_DIR
, 'apitrace', 'test-trace.py'),
221 os
.path
.join(dirpath
, filename
),
222 ','.join(classifier
.categories
)],
225 # List of all of the MSAA sample counts we wish to test
226 MSAA_SAMPLE_COUNTS
= ['2', '4', '6', '8', '16', '32']
228 with profile
.test_list
.group_manager(PiglitGLTest
, 'security') as g
:
229 g(['initialized-texmemory'], run_concurrent
=False)
230 g(['initialized-fbo'], run_concurrent
=False)
231 g(['initialized-vbo'], run_concurrent
=False)
233 with profile
.test_list
.group_manager(PiglitGLTest
, 'shaders') as g
:
234 g(['activeprogram-bad-program'])
235 g(['activeprogram-get'])
237 g(['createshaderprogram-bad-type'])
238 g(['createshaderprogram-attached-shaders'])
239 g(['glsl-arb-fragment-coord-conventions'])
240 g(['glsl-bug-22603'])
241 g(['glsl-bindattriblocation'])
242 g(['glsl-dlist-getattriblocation'])
243 g(['glsl-getactiveuniform-array-size'])
244 g(['glsl-getactiveuniform-length'])
245 g(['glsl-getattriblocation'])
249 g(['glsl-invalid-asm-01'])
250 g(['glsl-invalid-asm-02'])
251 g(['glsl-novertexdata'])
252 g(['glsl-preprocessor-comments'])
253 g(['glsl-reload-source'])
254 g(['glsl-cache-fallback-shader-source'])
255 g(['glsl-uniform-out-of-bounds'])
256 g(['glsl-uniform-out-of-bounds-2'])
257 g(['glsl-uniform-update'])
258 g(['glsl-unused-varying'])
259 g(['glsl-fs-bug25902'])
260 g(['glsl-fs-color-matrix'])
261 g(['glsl-fs-discard-02'])
262 g(['glsl-fs-discard-mrt'])
264 g(['glsl-fs-flat-color'])
265 g(['glsl-fs-fogcolor-statechange'])
266 g(['glsl-fs-fogscale'])
267 g(['glsl-fs-fragcoord'])
268 g(['glsl-fs-fragcoord-zw-ortho'])
269 g(['glsl-fs-fragcoord-zw-perspective'])
271 g(['glsl-fs-loop-nested'])
272 g(['glsl-fs-pointcoord'])
273 g(['glsl-fs-raytrace-bug27060'])
274 g(['glsl-fs-sampler-numbering'])
275 g(['glsl-fs-shader-stencil-export'])
276 g(['glsl-fs-sqrt-branch'])
277 g(['glsl-fs-texturecube'])
278 g(['glsl-fs-texturecube', '-bias'], 'glsl-fs-texturecube-bias')
279 g(['glsl-fs-texturecube-2'])
280 g(['glsl-fs-texturecube-2', '-bias'], 'glsl-fs-texturecube-2-bias')
281 g(['glsl-fs-textureenvcolor-statechange'], run_concurrent
=False)
282 g(['glsl-fs-texture2drect'])
283 g(['glsl-fs-texture2drect', '-proj3'], 'glsl-fs-texture2drect-proj3')
284 g(['glsl-fs-texture2drect', '-proj4'], 'glsl-fs-texture2drect-proj4')
285 g(['glsl-fs-user-varying-ff'])
286 g(['glsl-mat-attribute'])
287 g(['glsl-max-varyings'])
288 g(['glsl-max-varyings', '--exceed-limits'],
289 'glsl-max-varyings >MAX_VARYING_COMPONENTS')
290 g(['glsl-orangebook-ch06-bump'])
292 g(['glsl-vs-arrays'])
293 g(['glsl-vs-normalscale'])
294 g(['glsl-vs-functions'])
295 g(['glsl-vs-user-varying-ff'])
296 g(['glsl-vs-texturematrix-1'])
297 g(['glsl-vs-texturematrix-2'])
300 g(['glsl-vs-if-bool'])
302 g(['glsl-vs-loop-nested'])
303 g(['glsl-vs-mov-after-deref'])
304 g(['glsl-vs-mvp-statechange'])
305 g(['glsl-vs-raytrace-bug26691'])
306 g(['glsl-vs-statechange-1'])
307 g(['vp-combined-image-units'])
311 g(['vp-ignore-input'])
312 g(['glsl-empty-vs-no-fs'])
313 g(['glsl-useprogram-displaylist'])
314 g(['glsl-vs-point-size'])
315 g(['glsl-light-model'])
316 g(['glsl-link-bug30552'])
317 g(['glsl-link-bug38015'])
318 g(['glsl-max-vertex-attrib'])
319 g(['glsl-kwin-blur-1'])
320 g(['glsl-kwin-blur-2'])
321 g(['gpu_shader4_attribs'])
322 g(['link-unresolved-function'])
323 g(['shadersource-no-compile'])
325 g(['sso-uniforms-01'])
326 g(['sso-uniforms-02'])
327 g(['sso-user-varying-01'])
328 g(['sso-user-varying-02'])
329 g(['useprogram-flushverts-1'])
330 g(['useprogram-flushverts-2'])
331 g(['useprogram-inside-begin'])
332 g(['useprogram-refcount-1'])
333 g(['useshaderprogram-bad-type'])
334 g(['useshaderprogram-bad-program'])
335 g(['useshaderprogram-flushverts-1'])
336 g(['point-vertex-id', 'gl_VertexID'])
337 g(['point-vertex-id', 'gl_InstanceID'])
338 g(['point-vertex-id', 'gl_VertexID', 'gl_InstanceID'])
339 g(['point-vertex-id', 'divisor'])
340 g(['point-vertex-id', 'gl_VertexID', 'divisor'])
341 g(['point-vertex-id', 'gl_InstanceID', 'divisor'])
342 g(['point-vertex-id', 'gl_VertexID', 'gl_InstanceID', 'divisor'])
343 g(['glsl-vs-int-attrib'])
344 g(['unsuccessful-relink'])
345 g(['glsl-link-initializer-03'],
346 'GLSL link two programs, global initializer')
347 g(['glsl-getactiveuniform-count',
348 os
.path
.join('shaders', 'glsl-getactiveuniform-length.vert'), '1'],
349 'glsl-getactiveuniform-count: {}'.format('glsl-getactiveuniform-length'))
350 g(['glsl-getactiveuniform-count',
351 os
.path
.join('shaders', 'glsl-getactiveuniform-ftransform.vert'), '2'],
352 'glsl-getactiveuniform-count: {}'.format(
353 'glsl-getactiveuniform-ftransform'))
354 g(['glsl-getactiveuniform-count',
355 os
.path
.join('shaders', 'glsl-getactiveuniform-mvp.vert'), '2'],
356 'glsl-getactiveuniform-count: {}'.format('glsl-getactiveuniform-mvp'))
358 for subtest
in ('interstage', 'intrastage', 'vs-gs'):
359 g(['version-mixing', subtest
])
361 for subtest
in ('texture2D',
369 g(['zero-tex-coord', subtest
])
371 with profile
.test_list
.group_manager(
373 require_platforms
=['glx', 'mixed_glx_egl']) as g
:
374 g(['glx-destroycontext-1'], run_concurrent
=False)
375 g(['glx-destroycontext-2'], run_concurrent
=False)
376 g(['glx-dont-care-mask'], run_concurrent
=False)
377 g(['glx-close-display'], run_concurrent
=False)
378 g(['glx-fbconfig-sanity'], run_concurrent
=False)
379 g(['glx-fbconfig-compliance'], run_concurrent
=False)
380 g(['glx-fbconfig-bad'], run_concurrent
=False)
381 g(['glx-fbo-binding'], run_concurrent
=False)
382 g(['glx-multi-context-front'], run_concurrent
=False)
383 g(['glx-multi-context-ib-1'], run_concurrent
=False)
384 g(['glx-multi-context-single-window'], run_concurrent
=False)
385 g(['glx-multi-window-single-context'], run_concurrent
=False)
386 g(['glx-multithread'], run_concurrent
=False)
387 g(['glx-multithread-clearbuffer'], run_concurrent
=False)
388 g(['glx-multithread-texture'], run_concurrent
=False)
389 g(['glx-multithread-makecurrent-1'], run_concurrent
=False)
390 g(['glx-multithread-makecurrent-2'], run_concurrent
=False)
391 g(['glx-multithread-makecurrent-3'], run_concurrent
=False)
392 g(['glx-multithread-makecurrent-4'], run_concurrent
=False)
393 g(['glx-multithread-shader-compile'], run_concurrent
=False)
394 g(['glx-shader-sharing'], run_concurrent
=False)
395 g(['glx-swap-exchange'], run_concurrent
=False)
396 g(['glx-swap-event', '--event'], 'glx-swap-event_event',
397 run_concurrent
=False)
398 g(['glx-swap-event', '--async'], 'glx-swap-event_async',
399 run_concurrent
=False)
400 g(['glx-swap-event', '--interval'], 'glx-swap-event_interval',
401 run_concurrent
=False)
402 g(['glx-swap-pixmap'], run_concurrent
=False)
403 g(['glx-swap-pixmap-bad'], run_concurrent
=False)
404 g(['glx-swap-singlebuffer'], run_concurrent
=False)
405 g(['glx-swap-copy'], run_concurrent
=False)
406 g(['glx-make-current'], run_concurrent
=False)
407 g(['glx-make-glxdrawable-current'], run_concurrent
=False)
408 g(['glx-context-flush-control'], run_concurrent
=False)
409 g(['glx-buffer-age'], run_concurrent
=False)
410 g(['glx-pixmap-life'])
411 g(['glx-pixmap13-life'])
412 g(['glx-pixmap-multi'])
413 g(['glx-tfp'], run_concurrent
=False)
414 g(['glx-visuals-depth'], run_concurrent
=False)
415 g(['glx-visuals-depth', '-pixmap'])
416 g(['glx-visuals-stencil'], run_concurrent
=False)
417 g(['glx-visuals-stencil', '-pixmap'])
418 g(['glx-window-life'])
419 g(['glx-pixmap-crosscheck'])
420 g(['glx-query-drawable', '--attr=GLX_WIDTH', '--type=GLXWINDOW'],
421 'glx-query-drawable-GLXWINDOW-GLX_WIDTH', run_concurrent
=False)
422 g(['glx-query-drawable', '--attr=GLX_HEIGHT', '--type=GLXWINDOW'],
423 'glx-query-drawable-GLXWINDOW-GLX_HEIGHT', run_concurrent
=False)
424 g(['glx-query-drawable', '--attr=GLX_WIDTH', '--type=GLXPIXMAP'],
425 'glx-query-drawable-GLXPIXMAP-GLX_WIDTH', run_concurrent
=False)
426 g(['glx-query-drawable', '--attr=GLX_HEIGHT', '--type=GLXPIXMAP'],
427 'glx-query-drawable-GLXPIXMAP-GLX_HEIGHT', run_concurrent
=False)
428 g(['glx-query-drawable', '--attr=GLX_WIDTH', '--type=GLXPBUFFER'],
429 'glx-query-drawable-GLXPBUFFER-GLX_WIDTH', run_concurrent
=False)
430 g(['glx-query-drawable', '--attr=GLX_HEIGHT', '--type=GLXPBUFFER'],
431 'glx-query-drawable-GLXPBUFFER-GLX_HEIGHT', run_concurrent
=False)
432 g(['glx-query-drawable', '--attr=GLX_WIDTH', '--type=WINDOW'],
433 'glx-query-drawable-GLX_WIDTH', run_concurrent
=False)
434 g(['glx-query-drawable', '--attr=GLX_HEIGHT', '--type=WINDOW'],
435 'glx-query-drawable-GLX_HEIGHT', run_concurrent
=False)
436 g(['glx-query-drawable', '--attr=GLX_FBCONFIG_ID', '--type=WINDOW'],
437 'glx-query-drawable-GLX_FBCONFIG_ID-WINDOW', run_concurrent
=False)
438 g(['glx-query-drawable', '--attr=GLX_FBCONFIG_ID', '--type=GLXWINDOW'],
439 'glx-query-drawable-GLX_FBCONFIG_ID-GLXWINDOW', run_concurrent
=False)
440 g(['glx-query-drawable', '--attr=GLX_FBCONFIG_ID', '--type=GLXPIXMAP'],
441 'glx-query-drawable-GLX_FBCONFIG_ID-GLXPIXMAP', run_concurrent
=False)
442 g(['glx-query-drawable', '--attr=GLX_FBCONFIG_ID', '--type=GLXPBUFFER'],
443 'glx-query-drawable-GLX_FBCONFIG_ID-GLXPBUFFER', run_concurrent
=False)
444 g(['glx-query-drawable', '--attr=GLX_FBCONFIG_ID', '--type=GLXPBUFFER'],
445 'glx-query-drawable-GLX_PRESERVED_CONTENTS', run_concurrent
=False)
446 g(['glx-query-drawable', '--bad-drawable'],
447 'glx-query-drawable-GLXBadDrawable', run_concurrent
=False)
448 g(['glx-string-sanity'], 'extension string sanity')
449 add_msaa_visual_plain_tests(g
, ['glx-copy-sub-buffer'],
450 run_concurrent
=False)
451 profile
.test_list
[grouptools
.join('glx', 'glx-buffer-age vblank_mode=0')] = \
452 PiglitGLTest(['glx-buffer-age'],
453 require_platforms
=['glx', 'mixed_glx_egl'],
454 run_concurrent
=False)
455 profile
.test_list
[grouptools
.join(
456 'glx', 'glx-buffer-age vblank_mode=0')].env
['vblank_mode'] = '0'
458 with profile
.test_list
.group_manager(
460 grouptools
.join('glx', 'glx_ext_import_context'),
461 require_platforms
=['glx', 'mixed_glx_egl']) as g
:
462 g(['glx-free-context'], 'free context', run_concurrent
=False)
463 g(['glx-get-context-id'], 'get context ID', run_concurrent
=False)
464 g(['glx-get-current-display-ext'], 'get current display',
465 run_concurrent
=False)
466 g(['glx-import-context-has-same-context-id'],
467 'imported context has same context ID',
468 run_concurrent
=False)
469 g(['glx-import-context-multi-process'], 'import context, multi process',
470 run_concurrent
=False)
471 g(['glx-import-context-single-process'], 'import context, single process',
472 run_concurrent
=False)
473 g(['glx-make-current-multi-process'], 'make current, multi process',
474 run_concurrent
=False)
475 g(['glx-make-current-single-process'], 'make current, single process',
476 run_concurrent
=False)
477 g(['glx-query-context-info-ext'], 'query context info',
478 run_concurrent
=False)
480 with profile
.test_list
.group_manager(
482 grouptools
.join('glx', 'GLX_ARB_create_context'),
483 require_platforms
=['glx', 'mixed_glx_egl']) as g
:
484 g(['glx-create-context-current-no-framebuffer'],
485 'current with no framebuffer')
486 g(['glx-create-context-default-major-version'], 'default major version')
487 g(['glx-create-context-default-minor-version'], 'default minor version')
488 g(['glx-create-context-invalid-attribute'], 'invalid attribute')
489 g(['glx-create-context-invalid-flag'], 'invalid flag')
490 g(['glx-create-context-invalid-flag-forward-compatible'],
491 'forward-compatible flag with pre-3.0')
492 g(['glx-create-context-invalid-gl-version'], 'invalid OpenGL version')
493 g(['glx-create-context-invalid-render-type'], 'invalid render type')
494 g(['glx-create-context-invalid-render-type-color-index'],
495 'color-index render type with 3.0')
496 g(['glx-create-context-valid-attribute-empty'], 'empty attribute list')
497 g(['glx-create-context-valid-attribute-null'], 'NULL attribute list')
498 g(['glx-create-context-valid-flag-forward-compatible'],
499 'forward-compatible flag with 3.0')
501 with profile
.test_list
.group_manager(
503 grouptools
.join('glx', 'GLX_EXT_no_config_context'),
504 require_platforms
=['glx', 'mixed_glx_egl']) as g
:
505 g(['glx-create-context-ext-no-config-context'], 'no fbconfig')
507 with profile
.test_list
.group_manager(
509 grouptools
.join('glx', 'GLX_ARB_create_context_profile'),
510 require_platforms
=['glx', 'mixed_glx_egl']) as g
:
511 g(['glx-create-context-core-profile'], '3.2 core profile required')
512 g(['glx-create-context-invalid-profile'], 'invalid profile')
513 g(['glx-create-context-pre-GL32-profile'], 'pre-GL3.2 profile')
515 with profile
.test_list
.group_manager(
517 grouptools
.join('glx', 'GLX_ARB_create_context_robustness'),
518 require_platforms
=['glx', 'mixed_glx_egl']) as g
:
519 g(['glx-create-context-invalid-reset-strategy'],
520 'invalid reset notification strategy')
521 g(['glx-create-context-require-robustness'], 'require GL_ARB_robustness')
523 with profile
.test_list
.group_manager(
525 grouptools
.join('glx', 'GLX_ARB_create_context_es2_profile'),
526 require_platforms
=['glx', 'mixed_glx_egl']) as g
:
527 g(['glx-create-context-indirect-es2-profile'],
528 'indirect rendering ES2 profile')
529 g(['glx-create-context-invalid-es-version'], 'invalid OpenGL ES version')
531 with profile
.test_list
.group_manager(
533 grouptools
.join('glx', 'GLX_ARB_create_context_no_error'),
534 require_platforms
=['glx', 'mixed_glx_egl']) as g
:
535 g(['glx-create-context-no-error'], 'no error')
537 with profile
.test_list
.group_manager(
539 grouptools
.join('glx', 'GLX_ARB_sync_control'),
540 require_platforms
=['glx', 'mixed_glx_egl']) as g
:
541 g(['glx-oml-sync-control-getmscrate'], 'glXGetMscRateOML')
542 g(['glx-oml-sync-control-swapbuffersmsc-divisor-zero'],
543 'swapbuffersmsc-divisor-zero')
544 g(['glx-oml-sync-control-swapbuffersmsc-return'], 'swapbuffersmsc-return')
545 g(['glx-oml-sync-control-swapbuffersmsc-return', '0'],
546 'swapbuffersmsc-return swap_interval 0')
547 g(['glx-oml-sync-control-swapbuffersmsc-return', '1'],
548 'swapbuffersmsc-return swap_interval 1')
549 g(['glx-oml-sync-control-waitformsc'], 'waitformsc')
551 oml_sync_control_nonzeros
= [
552 mode
+ [kind
, period
]
553 for mode
in [[], ['-fullscreen'], ['-waitformsc']]
554 for kind
in ['-divisor', '-msc-delta']
555 for period
in ['1', '2']
557 for args
in oml_sync_control_nonzeros
:
558 group
= grouptools
.join('glx', 'GLX_ARB_sync_control',
559 ' '.join(['timing'] + args
))
560 profile
.test_list
[group
] = PiglitGLTest(
561 ['glx-oml-sync-control-timing'] + args
,
562 require_platforms
=['glx', 'mixed_glx_egl'], run_concurrent
=False)
564 with profile
.test_list
.group_manager(
566 grouptools
.join('glx', 'GLX_MESA_query_renderer'),
567 require_platforms
=['glx', 'mixed_glx_egl']) as g
:
568 g(['glx-query-renderer-coverage'], 'coverage')
570 with profile
.test_list
.group_manager(
572 require_platforms
=['wgl']) as g
:
574 g(['wgl-multi-context-single-window'])
575 g(['wgl-multi-window-single-context'])
577 with profile
.test_list
.group_manager(
579 grouptools
.join('spec', '!opengl 1.0')) as g
:
580 g(['gl-1.0-beginend-coverage'])
581 g(['gl-1.0-bitmap-heart-dance'])
582 g(['gl-1.0-dlist-beginend'])
583 g(['gl-1.0-dlist-bitmap'])
584 g(['gl-1.0-dlist-materials'])
585 g(['gl-1.0-dlist-shademodel'])
586 g(['gl-1.0-drawpixels-color-index'])
587 g(['gl-1.0-drawpixels-depth-test'])
588 g(['gl-1.0-drawpixels-stencil-test'])
589 g(['gl-1.0-drawbuffer-modes'], run_concurrent
=False)
590 g(['gl-1.0-edgeflag'])
591 g(['gl-1.0-edgeflag-const'])
592 g(['gl-1.0-edgeflag-quads'])
593 g(['gl-1.0-empty-begin-end-clause'])
594 g(['gl-1.0-long-dlist'])
595 g(['gl-1.0-long-line-loop'])
596 g(['gl-1.0-readpixels-oob'])
597 g(['gl-1.0-rendermode-feedback'])
598 g(['gl-1.0-front-invalidate-back'], run_concurrent
=False)
599 g(['gl-1.0-swapbuffers-behavior'], run_concurrent
=False)
600 g(['gl-1.0-polygon-line-aa'])
601 g(['gl-1.0-push-no-attribs'])
602 g(['gl-1.0-blend-func'])
603 g(['gl-1.0-fpexceptions'])
604 g(['gl-1.0-ortho-pos'])
605 g(['gl-1.0-rastercolor'])
606 g(['gl-1.0-read-cache-stress-test'])
607 g(['gl-1.0-readpixsanity'])
608 g(['gl-1.0-logicop'])
609 g(['gl-1.0-no-op-paths'])
610 g(['gl-1.0-simple-readbuffer'])
611 g(['gl-1.0-spot-light'])
612 g(['gl-1.0-scissor-bitmap'])
613 g(['gl-1.0-scissor-clear'])
614 g(['gl-1.0-scissor-copypixels'])
615 g(['gl-1.0-scissor-depth-clear'])
616 g(['gl-1.0-scissor-depth-clear-negative-xy'])
617 g(['gl-1.0-scissor-many'])
618 g(['gl-1.0-scissor-offscreen'])
619 g(['gl-1.0-scissor-polygon'])
620 g(['gl-1.0-scissor-stencil-clear'])
622 g(['gl-1.0-textured-triangle'])
623 g(['gl-1.0-user-clip-all-planes'])
625 with profile
.test_list
.group_manager(
627 grouptools
.join('spec', '!opengl 1.1')) as g
:
628 # putting slower tests first
629 g(['streaming-texture-leak'])
630 g(['max-texture-size'])
631 g(['max-texture-size-level'])
632 g(['copyteximage', '1D'])
633 g(['copyteximage', '2D'])
634 g(['gl-1.1-color-material-array'])
635 g(['gl-1.1-draw-arrays-start'])
636 g(['gl-1.1-read-pixels-after-display-list'])
637 g(['gl-1.1-set-vertex-color-after-draw'])
639 g(['clear-accum'], run_concurrent
=False)
641 g(['copypixels-draw-sync'])
642 g(['copypixels-sync'])
643 g(['degenerate-prims'])
645 g(['depthrange-clear'])
647 g(['dlist-color-material'])
648 g(['dlist-fdo3129-01'])
649 g(['dlist-fdo3129-02'])
650 g(['dlist-fdo31590'])
651 g(['draw-arrays-colormaterial'])
652 g(['draw-copypixels-sync'])
653 g(['draw-pixel-with-texture'])
657 g(['fragment-center'])
658 g(['geterror-invalid-enum'])
659 g(['geterror-inside-begin'])
662 g(['gl-1.1-xor-copypixels'])
663 g(['gl-1.2-texture-base-level'])
664 g(['gl-1.3-alpha_to_coverage_nop'])
666 g(['infinite-spot-light'])
668 g(['line-flat-clip-color'])
670 g(['lineloop', '-dlist'], 'lineloop-dlist')
671 g(['linestipple'], run_concurrent
=False)
673 g(['masked-clear'], run_concurrent
=False)
674 g(['point-line-no-cull'])
676 g(['polygon-mode-facing'])
677 g(['polygon-mode-offset'])
678 g(['polygon-offset'])
679 g(['ppgtt_memory_alignment'])
680 g(['push-pop-texture-state'])
681 g(['quad-invariance'])
683 g(['roundmode-getintegerv'])
684 g(['roundmode-pixelstore'])
685 g(['select', 'gl11'], 'GL_SELECT - no test function')
686 g(['select', 'depth'], 'GL_SELECT - depth-test enabled')
687 g(['select', 'stencil'], 'GL_SELECT - stencil-test enabled')
688 g(['select', 'alpha'], 'GL_SELECT - alpha-test enabled')
689 g(['select', 'scissor'], 'GL_SELECT - scissor-test enabled')
690 g(['stencil-drawpixels'])
692 g(['two-sided-lighting'])
694 g(['varray-disabled'])
696 g(['copyteximage-border'])
697 g(['copyteximage-clipping'])
698 g(['copytexsubimage'])
699 g(['getteximage-formats'])
700 g(['getteximage-luminance'])
701 g(['getteximage-simple'])
702 g(['getteximage-depth'])
703 g(['incomplete-texture', 'fixed'], 'incomplete-texture-fixed')
705 g(['sized-texture-format-channels'])
708 g(['texsubimage-unpack'])
709 g(['texsubimage-depth-formats'])
711 g(['triangle-guardband-viewport'])
712 g(['getteximage-targets', '1D'])
713 g(['getteximage-targets', '2D'])
714 g(['teximage-scale-bias'])
715 g(['tex-upside-down-miptree'])
717 for prim
in ['GL_POINTS', 'GL_LINE_LOOP', 'GL_LINE_STRIP', 'GL_LINES',
718 'GL_TRIANGLES', 'GL_TRIANGLE_STRIP', 'GL_TRIANGLE_FAN',
719 'GL_QUADS', 'GL_QUAD_STRIP', 'GL_POLYGON']:
720 for mode
in ['varray', 'vbo']:
721 g(['gl-1.1-drawarrays-vertex-count', '100000', mode
, prim
])
723 add_msaa_visual_plain_tests(g
, ['draw-pixels'])
724 add_msaa_visual_plain_tests(g
, ['read-front'], run_concurrent
=False)
725 add_msaa_visual_plain_tests(g
, ['read-front', 'clear-front-first'],
726 run_concurrent
=False)
727 add_texwrap_target_tests(g
, '1D')
728 add_texwrap_target_tests(g
, '2D')
729 add_texwrap_format_tests(g
)
732 'GL_RED', 'GL_R8', 'GL_R8_SNORM', 'GL_R16', 'GL_R16_SNORM',
733 'GL_R16F', 'GL_R32F',
735 'GL_RG', 'GL_RG8', 'GL_RG8_SNORM', 'GL_RG16', 'GL_RG16_SNORM',
736 'GL_RG16F', 'GL_RG32F',
738 'GL_RGB', 'GL_R3_G3_B2', 'GL_RGB4', 'GL_RGB5', 'GL_RGB8',
739 'GL_RGB8_SNORM', 'GL_SRGB8', 'GL_RGB10', 'GL_R11F_G11F_B10F',
740 'GL_RGB12', 'GL_RGB9_E5', 'GL_RGB16', 'GL_RGB16F',
741 'GL_RGB16_SNORM', 'GL_RGB32F',
743 'GL_RGBA', 'GL_RGBA2', 'GL_RGBA4', 'GL_RGB5_A1', 'GL_RGBA8',
744 'GL_RGB10_A2', 'GL_RGBA8_SNORM', 'GL_SRGB8_ALPHA8', 'GL_RGBA12',
745 'GL_RGBA16', 'GL_RGBA16_SNORM', 'GL_RGBA32F',
747 'GL_ALPHA', 'GL_ALPHA4', 'GL_ALPHA8', 'GL_ALPHA12', 'GL_ALPHA16',
749 'GL_LUMINANCE', 'GL_LUMINANCE4', 'GL_LUMINANCE8', 'GL_SLUMINANCE8',
750 'GL_LUMINANCE12', 'GL_LUMINANCE16',
752 'GL_LUMINANCE_ALPHA', 'GL_LUMINANCE4_ALPHA4',
753 'GL_LUMINANCE6_ALPHA2', 'GL_LUMINANCE8_ALPHA8',
754 'GL_SLUMINANCE8_ALPHA8', 'GL_LUMINANCE12_ALPHA4',
755 'GL_LUMINANCE12_ALPHA12', 'GL_LUMINANCE16_ALPHA16',
757 for format
in color_formats
:
758 g(['teximage-colors', format
])
760 for num_samples
in ['0'] + MSAA_SAMPLE_COUNTS
:
761 add_fbo_depthstencil_tests(g
, 'default_fb', num_samples
)
763 with profile
.test_list
.group_manager(
765 grouptools
.join('spec', '!opengl 1.2')) as g
:
766 g(['gl-1.2-texparameter-before-teximage'])
767 g(['draw-elements-vs-inputs'])
768 g(['two-sided-lighting-separate-specular'])
771 g(['lodclamp-between'])
772 g(['lodclamp-between-max'])
774 g(['gl-1.2-rescale-normal'])
775 g(['tex-skipped-unit'])
777 g(['tex3d-maxsize'], run_concurrent
=False)
778 g(['teximage-errors'])
779 g(['texture-packed-formats'])
780 g(['getteximage-targets', '3D'])
781 add_msaa_visual_plain_tests(g
, ['copyteximage', '3D'])
782 add_texwrap_target_tests(g
, '3D')
784 with profile
.test_list
.group_manager(
786 grouptools
.join('spec', '!opengl 1.3')) as g
:
789 g(['gl-1.3-texture-env'])
792 with profile
.test_list
.group_manager(
794 grouptools
.join('spec', '!opengl 1.4')) as g
:
795 g(['gl-1.4-rgba-mipmap-texture-with-rgb-visual'])
798 g(['gl-1.4-dlist-multidrawarrays'])
799 g(['gl-1.4-multidrawarrays-errors'])
800 g(['gl-1.4-polygon-offset'])
801 g(['gl-1.4-tex1d-2dborder'])
804 g(['triangle-rasterization'])
805 g(['triangle-rasterization', '-use_fbo'], 'triangle-rasterization-fbo')
806 g(['triangle-rasterization-overdraw'])
807 g(['tex-miplevel-selection', '-nobias', '-nolod'],
808 'tex-miplevel-selection')
809 g(['tex-miplevel-selection', '-nobias'], 'tex-miplevel-selection-lod')
810 g(['tex-miplevel-selection'], 'tex-miplevel-selection-lod-bias')
811 add_msaa_visual_plain_tests(g
, ['copy-pixels'])
813 with profile
.test_list
.group_manager(
815 grouptools
.join('spec', '!opengl 1.5')) as g
:
817 g(['draw-elements', 'user'], 'draw-elements-user')
819 g(['draw-vertices', 'user'], 'draw-vertices-user')
821 g(['depth-tex-compare'])
822 g(['gl-1.5-get-array-attribs'])
823 g(['gl-1.5-normal3b3s-invariance', 'GL_BYTE'],
824 'normal3b3s-invariance-byte')
825 g(['gl-1.5-normal3b3s-invariance', 'GL_SHORT'],
826 'normal3b3s-invariance-short')
827 g(['gl-1.5-vertex-buffer-offsets'], 'vertex-buffer-offsets')
829 with profile
.test_list
.group_manager(
831 grouptools
.join('spec', '!opengl 2.0')) as g
:
833 g(['gl-2.0-edgeflag'])
834 g(['gl-2.0-edgeflag-immediate'])
835 g(['gl-2.0-large-point-fs'])
836 g(['gl-2.0-link-empty-prog'])
837 g(['gl-2.0-two-sided-stencil'])
838 g(['gl-2.0-vertexattribpointer'])
839 g(['gl-2.0-vertexattribpointer-size-3'])
840 g(['gl-2.0-vertex-attr-0'])
841 g(['gl-2.0-vertex-const-attr'])
842 g(['gl-2.0-reuse_fragment_shader'])
843 g(['gl-2.0-shader-materials'])
844 g(['attrib-assignments'])
845 g(['getattriblocation-conventional'])
846 g(['clip-flag-behavior'])
847 g(['vertex-program-two-side', 'enabled', 'front', 'back', 'front2',
849 g(['vertex-program-two-side', 'enabled', 'front', 'back', 'front2'])
850 g(['vertex-program-two-side', 'enabled', 'front', 'back', 'back2'])
851 g(['vertex-program-two-side', 'enabled', 'front', 'back'])
852 g(['vertex-program-two-side', 'enabled', 'front', 'front2', 'back2'])
853 g(['vertex-program-two-side', 'enabled', 'front', 'front2'])
854 g(['vertex-program-two-side', 'enabled', 'front', 'back2'])
855 g(['vertex-program-two-side', 'enabled', 'front'])
856 g(['vertex-program-two-side', 'enabled', 'back', 'front2', 'back2'])
857 g(['vertex-program-two-side', 'enabled', 'back', 'front2'])
858 g(['vertex-program-two-side', 'enabled', 'back', 'back2'])
859 g(['vertex-program-two-side', 'enabled', 'back'])
860 g(['vertex-program-two-side', 'enabled', 'front2', 'back2'])
861 g(['vertex-program-two-side', 'enabled', 'front2'])
862 g(['vertex-program-two-side', 'enabled', 'back2'])
863 g(['vertex-program-two-side', 'enabled'])
864 g(['vertex-program-two-side', 'front', 'back', 'front2', 'back2'])
865 g(['vertex-program-two-side', 'front', 'back', 'front2'])
866 g(['vertex-program-two-side', 'front', 'back', 'back2'])
867 g(['vertex-program-two-side', 'front', 'back'])
868 g(['vertex-program-two-side', 'front', 'front2', 'back2'])
869 g(['vertex-program-two-side', 'front', 'front2'])
870 g(['vertex-program-two-side', 'front', 'back2'])
871 g(['vertex-program-two-side', 'front'])
872 g(['vertex-program-two-side', 'back', 'front2', 'back2'])
873 g(['vertex-program-two-side', 'back', 'front2'])
874 g(['vertex-program-two-side', 'back', 'back2'])
875 g(['vertex-program-two-side', 'back'])
876 g(['vertex-program-two-side', 'front2', 'back2'])
877 g(['vertex-program-two-side', 'front2'])
878 g(['vertex-program-two-side', 'back2'])
879 g(['vertex-program-two-side'])
880 g(['clear-varray-2.0'])
882 g(['occlusion-query-discard'])
883 g(['stencil-twoside'])
884 g(['vs-point_size-zero'])
885 g(['depth-tex-modes-glsl'])
886 g(['fragment-and-vertex-texturing'])
887 g(['incomplete-texture', 'glsl'], 'incomplete-texture-glsl')
890 g(['max-samplers', 'border'])
891 g(['gl-2.0-active-sampler-conflict'])
892 g(['incomplete-cubemap', 'size'], 'incomplete-cubemap-size')
893 g(['incomplete-cubemap', 'format'], 'incomplete-cubemap-format')
894 g(['gl-2.0-texture-units'])
895 g(['gl-2.0-uniform-neg-location'])
897 with profile
.test_list
.group_manager(
899 grouptools
.join('spec', '!opengl 2.1')) as g
:
900 g(['gl-2.1-minmax'], 'minmax')
901 g(['gl-2.1-pbo'], 'pbo')
902 g(['gl-2.1-polygon-stipple-fs'], 'polygon-stipple-fs')
903 g(['gl-2.1-fbo-mrt-alphatest-no-buffer-zero-write'], 'fbo-mrt-alphatest-no-buffer-zero-write')
905 with profile
.test_list
.group_manager(
907 grouptools
.join('spec', '!opengl 3.0')) as g
:
908 g(['attribs', 'GL3'], 'attribs')
909 g(['bindfragdata-invalid-parameters'])
910 g(['bindfragdata-link-error'])
911 g(['bindfragdata-nonexistent-variable'])
912 g(['gl-3.0-bound-resource-limits'],
913 'bound-resource-limits')
914 g(['clearbuffer-depth'])
915 g(['clearbuffer-depth-stencil'])
916 g(['clearbuffer-display-lists'])
917 g(['clearbuffer-invalid-drawbuffer'])
918 g(['clearbuffer-invalid-buffer'])
919 g(['clearbuffer-mixed-format'])
920 g(['clearbuffer-stencil'])
921 g(['gl-3.0-dlist-uint-uniforms'],
922 'dlist-uint-uniforms')
923 g(['genmipmap-errors'])
924 g(['getfragdatalocation'])
925 g(['integer-errors'])
926 g(['gl-3.0-multidrawarrays-vertexid'],
927 'gl_VertexID used with glMultiDrawArrays')
928 g(['gl-3.0-minmax'], 'minmax')
929 g(['gl-3.0-render-integer'], 'render-integer')
930 g(['gl-3.0-required-sized-texture-formats', '30'],
931 'required-sized-texture-formats')
932 g(['gl-3.0-required-renderbuffer-attachment-formats', '30'],
933 'required-renderbuffer-attachment-formats')
934 g(['gl-3.0-required-texture-attachment-formats', '30'],
935 'required-texture-attachment-formats')
936 g(['gl-3.0-forward-compatible-bit', 'yes'],
937 'forward-compatible-bit yes')
938 g(['gl-3.0-forward-compatible-bit', 'no'],
939 'forward-compatible-bit no')
940 g(['gl-3.0-texparameteri'])
941 g(['gl-3.0-texture-integer'])
942 g(['gl-3.0-vertexattribipointer'])
943 g(['gl30basic'], run_concurrent
=False)
944 g(['array-depth-roundtrip'])
945 g(['depth-cube-map'])
946 g(['sampler-cube-shadow'])
947 g(['generatemipmap-base-change', 'size'])
948 g(['generatemipmap-base-change', 'format'])
949 g(['generatemipmap-cubemap'])
950 g(['viewport-clamp'])
952 with profile
.test_list
.group_manager(
954 grouptools
.join('spec', '!opengl 3.1')) as g
:
955 g(['gl-3.1-buffer-bindings'], 'buffer-bindings')
956 g(['gl-3.1-default-vao'], 'default-vao')
957 g(['gl-3.1-draw-buffers-errors'], 'draw-buffers-errors')
958 g(['gl-3.1-enable-vertex-array'])
959 g(['gl-3.1-genned-names'], 'genned-names')
960 g(['gl-3.1-link-empty-prog-core'])
961 g(['gl-3.1-minmax'], 'minmax')
962 g(['gl-3.1-mixed-int-float-fbo'])
963 g(['gl-3.1-mixed-int-float-fbo', 'int_second'])
964 g(['gl-3.1-vao-broken-attrib'], 'vao-broken-attrib')
965 g(['gl-3.0-required-renderbuffer-attachment-formats', '31'],
966 'required-renderbuffer-attachment-formats')
967 g(['gl-3.0-required-sized-texture-formats', '31'],
968 'required-sized-texture-formats')
969 g(['gl-3.0-required-texture-attachment-formats', '31'],
970 'required-texture-attachment-formats')
971 for subtest
in ['generated', 'written', 'flush']:
972 g(['gl-3.1-primitive-restart-xfb', subtest
],
973 'primitive-restart-xfb {0}'.format(subtest
))
975 with profile
.test_list
.group_manager(
977 grouptools
.join('spec', '!opengl 3.2')) as g
:
978 g(['glsl-resource-not-bound', '1D'])
979 g(['glsl-resource-not-bound', '2D'])
980 g(['glsl-resource-not-bound', '3D'])
981 g(['glsl-resource-not-bound', '2DRect'])
982 g(['glsl-resource-not-bound', '1DArray'])
983 g(['glsl-resource-not-bound', '2DArray'])
984 g(['glsl-resource-not-bound', '2DMS'])
985 g(['glsl-resource-not-bound', '2DMSArray'])
986 g(['glsl-resource-not-bound', 'Buffer'])
987 g(['glsl-resource-not-bound', 'Cube'])
988 g(['gl-3.2-basevertex-vertexid'],
989 'gl_VertexID used with glMultiDrawElementsBaseVertex')
990 g(['gl-3.2-minmax'], 'minmax')
991 g(['gl-3.2-adj-prims', 'pv-first'])
992 g(['gl-3.2-adj-prims', 'pv-last'])
993 g(['gl-3.2-adj-prims', 'cull-front pv-first'])
994 g(['gl-3.2-adj-prims', 'cull-front pv-last'])
995 g(['gl-3.2-adj-prims', 'cull-back pv-first'])
996 g(['gl-3.2-adj-prims', 'cull-back pv-last'])
997 g(['gl-3.2-adj-prims', 'line cull-front pv-first'])
998 g(['gl-3.2-adj-prims', 'line cull-front pv-last'])
999 g(['gl-3.2-adj-prims', 'line cull-back pv-first'])
1000 g(['gl-3.2-adj-prims', 'line cull-back pv-last'])
1001 g(['gl-3.2-clear-no-buffers'], 'clear-no-buffers')
1002 g(['gl-3.2-depth-tex-sampling'], 'depth-tex-sampling')
1003 g(['gl-3.2-get-buffer-parameter-i64v'], 'get-buffer-parameter-i64v')
1004 g(['gl-3.2-get-integer-64iv'], 'get-integer-64iv')
1005 g(['gl-3.2-get-integer-64v'], 'get-integer-64v')
1006 g(['gl-3.2-pointsprite-coord'], 'pointsprite-coord')
1007 g(['gl-3.2-pointsprite-origin'], 'pointsprite-origin')
1008 g(['gl-coord-replace-doesnt-eliminate-frag-tex-coords'],
1009 'coord-replace-doesnt-eliminate-frag-tex-coords')
1010 g(['gl-get-active-attrib-returns-all-inputs'],
1011 'get-active-attrib-returns-all-inputs')
1012 g(['gl-3.2-texture-border-deprecated'], 'texture-border-deprecated')
1014 with profile
.test_list
.group_manager(
1016 grouptools
.join('spec', '!opengl 3.2', 'layered-rendering')) as g
:
1017 g(['gl-3.2-layered-rendering-blit'], 'blit')
1018 g(['gl-3.2-layered-rendering-clear-color'], 'clear-color')
1019 g(['gl-3.2-layered-rendering-clear-color-mismatched-layer-count'],
1020 'clear-color-mismatched-layer-count')
1021 g(['gl-3.2-layered-rendering-clear-depth'], 'clear-depth')
1022 g(['gl-3.2-layered-rendering-framebuffertexture'], 'framebuffertexture')
1023 g(['gl-3.2-layered-rendering-framebuffertexture-buffer-textures'],
1024 'framebuffertexture-buffer-textures')
1025 g(['gl-3.2-layered-rendering-framebuffertexture-defaults'],
1026 'framebuffertexture-defaults')
1027 g(['gl-3.2-layered-rendering-readpixels'], 'readpixels')
1028 g(['gl-3.2-layered-rendering-framebuffer-layer-attachment-mismatch'],
1029 'framebuffer-layer-attachment-mismatch')
1030 g(['gl-3.2-layered-rendering-framebuffer-layer-complete'],
1031 'framebuffer-layer-complete')
1032 g(['gl-3.2-layered-rendering-framebuffer-layer-count-mismatch'],
1033 'framebuffer-layer-count-mismatch')
1034 g(['gl-3.2-layered-rendering-framebuffer-layered-attachments'],
1035 'framebuffer-layered-attachments')
1036 g(['gl-3.2-layered-rendering-gl-layer'], 'gl-layer')
1037 g(['gl-3.2-layered-rendering-gl-layer-cube-map'], 'gl-layer-cube-map')
1038 g(['gl-3.2-layered-rendering-gl-layer-not-layered'],
1039 'gl-layer-not-layered')
1040 g(['gl-3.2-layered-rendering-gl-layer-render'], 'gl-layer-render')
1041 g(['gl-3.2-layered-rendering-gl-layer-render-clipped'], 'gl-layer-render-clipped')
1042 g(['gl-3.2-layered-rendering-gl-layer-render-storage'], 'gl-layer-render-storage')
1044 for texture_type
in ['3d', '2d_array', '2d_multisample_array', '1d_array',
1045 'cube_map', 'cube_map_array']:
1046 for test_type
in ['single_level', 'mipmapped']:
1047 if texture_type
== '2d_multisample_array' and \
1048 test_type
== 'mipmapped':
1050 g(['gl-3.2-layered-rendering-clear-color-all-types', texture_type
,
1052 'clear-color-all-types {} {}'.format(texture_type
, test_type
))
1054 with profile
.test_list
.group_manager(
1056 grouptools
.join('spec', '!opengl 3.3')) as g
:
1057 g(['gl-3.3-minmax'], 'minmax')
1058 g(['gl-3.0-required-renderbuffer-attachment-formats', '33'],
1059 'required-renderbuffer-attachment-formats')
1060 g(['gl-3.0-required-sized-texture-formats', '33'],
1061 'required-sized-texture-formats')
1062 g(['gl-3.0-required-texture-attachment-formats', '33'],
1063 'required-texture-attachment-formats')
1065 with profile
.test_list
.group_manager(
1067 grouptools
.join('spec', '!opengl 4.2')) as g
:
1068 g(['gl-3.0-required-renderbuffer-attachment-formats', '42'],
1069 'required-renderbuffer-attachment-formats')
1070 g(['gl-3.0-required-sized-texture-formats', '42'],
1071 'required-sized-texture-formats')
1072 g(['gl-3.0-required-texture-attachment-formats', '42'],
1073 'required-texture-attachment-formats')
1074 g(['gl-4.4-max_vertex_attrib_stride'], 'gl-max-vertex-attrib-stride')
1076 with profile
.test_list
.group_manager(
1078 grouptools
.join('spec', '!opengl 4.5')) as g
:
1079 g(['gl-4.5-named-framebuffer-draw-buffers-errors'], 'named-framebuffer-draw-buffers-errors')
1080 g(['gl-4.5-named-framebuffer-read-buffer-errors'], 'named-framebuffer-read-buffer-errors')
1081 g(['gl-4.5-compare-framebuffer-parameter-with-get'], 'compare-framebuffer-parameter-with-get')
1083 with profile
.test_list
.group_manager(
1085 grouptools
.join('spec', '!opengl 4.3')) as g
:
1086 g(['gl-4.3-get_glsl_versions'], 'get_glsl_version')
1088 with profile
.test_list
.group_manager(
1090 grouptools
.join('spec', '!opengl 4.4')) as g
:
1093 # Group spec/glsl-es-1.00
1094 with profile
.test_list
.group_manager(
1095 BuiltInConstantsTest
,
1096 grouptools
.join('spec', 'glsl-es-1.00')) as g
:
1097 g(['built-in-constants_gles2',
1098 os
.path
.join('spec', 'glsl-es-1.00', 'minimum-maximums.txt')],
1099 'built-in constants')
1101 with profile
.test_list
.group_manager(
1103 grouptools
.join('spec', 'glsl-es-1.00', 'linker')) as g
:
1104 g(['glsl-es-1.00-fface-invariant'], 'glsl-fface-invariant')
1106 # Group spec/glsl-1.10
1107 with profile
.test_list
.group_manager(
1109 grouptools
.join('spec', 'glsl-1.10', 'execution')) as g
:
1110 g(['glsl-render-after-bad-attach'])
1111 g(['glsl-1.10-built-in-matrix-state'])
1112 g(['glsl-1.10-built-in-uniform-state'])
1113 g(['glsl-1.10-fragdepth'])
1114 g(['glsl-1.10-linear-fog'])
1115 g(['glsl-1.10-uniform-matrix-transposed'])
1117 with profile
.test_list
.group_manager(
1119 grouptools
.join('spec', 'glsl-1.10', 'execution', 'clipping')) as g
:
1120 for mode
in ['fixed', 'pos_clipvert', 'clipvert_pos']:
1121 g(['clip-plane-transformation', mode
],
1122 'clip-plane-transformation {}'.format(mode
))
1124 with profile
.test_list
.group_manager(
1126 grouptools
.join('spec', 'glsl-1.10', 'execution',
1127 'varying-packing')) as g
:
1128 for type_
in ['int', 'uint', 'float', 'vec2', 'vec3', 'vec4', 'ivec2',
1129 'ivec3', 'ivec4', 'uvec2', 'uvec3', 'uvec4', 'mat2', 'mat3',
1130 'mat4', 'mat2x3', 'mat2x4', 'mat3x2', 'mat3x4', 'mat4x2',
1132 for arrayspec
in ['array', 'separate', 'arrays_of_arrays']:
1133 g(['varying-packing-simple', type_
, arrayspec
],
1134 'simple {} {}'.format(type_
, arrayspec
))
1136 with profile
.test_list
.group_manager(
1137 BuiltInConstantsTest
,
1138 grouptools
.join('spec', 'glsl-1.10')) as g
:
1139 g(['built-in-constants',
1140 os
.path
.join('spec', 'glsl-1.10', 'minimum-maximums.txt')],
1141 'built-in constants')
1143 with profile
.test_list
.group_manager(
1145 grouptools
.join('spec', 'glsl-1.10', 'api')) as g
:
1146 g(['getactiveattrib', '110'], 'getactiveattrib 110')
1148 # Group spec/glsl-1.20
1149 with profile
.test_list
.group_manager(
1151 grouptools
.join('spec', 'glsl-1.20')) as g
:
1152 g(['glsl-1.20-getactiveuniform-constant'])
1153 g(['built-in-constants',
1154 os
.path
.join('spec', 'glsl-1.20', 'minimum-maximums.txt')],
1155 'built-in constants',
1156 override_class
=BuiltInConstantsTest
)
1158 with profile
.test_list
.group_manager(
1160 grouptools
.join('spec', 'glsl-1.20', 'api')) as g
:
1161 g(['getactiveattrib', '120'])
1163 with profile
.test_list
.group_manager(
1165 grouptools
.join('spec', 'glsl-1.20', 'recursion')) as g
:
1166 g(['recursion', '-rlmit', '268435456', 'simple'], 'simple',
1167 run_concurrent
=False)
1168 g(['recursion', '-rlmit', '268435456', 'unreachable'], 'unreachable',
1169 run_concurrent
=False)
1170 g(['recursion', '-rlmit', '268435456', 'unreachable-constant-folding'],
1171 'unreachable-constant-folding', run_concurrent
=False)
1172 g(['recursion', '-rlmit', '268435456', 'indirect'], 'indirect',
1173 run_concurrent
=False)
1174 g(['recursion', '-rlmit', '268435456', 'indirect-separate'],
1175 'indirect-separate', run_concurrent
=False)
1176 g(['recursion', '-rlmit', '268435456', 'indirect-complex'],
1177 'indirect-complex', run_concurrent
=False)
1178 g(['recursion', '-rlmit', '268435456', 'indirect-complex-separate'],
1179 'indirect-complex-separate', run_concurrent
=False)
1181 with profile
.test_list
.group_manager(
1183 grouptools
.join('spec', 'glsl-1.20', 'execution')) as g
:
1184 for test
in ['1D', '2D', '3D', 'Cube', '1DShadow', '2DShadow']:
1185 g(['tex-miplevel-selection', 'GL2:texture()', test
])
1186 g(['tex-miplevel-selection', 'GL2:texture(bias)', test
])
1188 for test
in ['1D', '1D_ProjVec4', '2D', '2D_ProjVec4', '3D', '1DShadow',
1190 g(['tex-miplevel-selection', 'GL2:textureProj', test
])
1191 g(['tex-miplevel-selection', 'GL2:textureProj(bias)', test
])
1193 textureSize_samplers_130
= [
1194 'sampler1D', 'sampler2D', 'sampler3D', 'samplerCube', 'sampler1DShadow',
1195 'sampler2DShadow', 'samplerCubeShadow', 'sampler1DArray', 'sampler2DArray',
1196 'sampler1DArrayShadow', 'sampler2DArrayShadow', 'isampler1D', 'isampler2D',
1197 'isampler3D', 'isamplerCube', 'isampler1DArray', 'isampler2DArray',
1198 'usampler1D', 'usampler2D', 'usampler3D', 'usamplerCube',
1199 'usampler1DArray', 'usampler2DArray']
1200 for stage
in ['vs', 'gs', 'fs']:
1207 # These will be added in the textureSize_samplers_140 loop for gs, because
1208 # it is a special case and is actually 1.50 feature.
1209 # Despite the differences in the commands lines of the two lists (this one
1210 # does not add '140', the two tests are equivalent.
1211 if stage
is not 'gs':
1212 for sampler
in textureSize_samplers_130
:
1213 profile
.test_list
[grouptools
.join(
1214 'spec', 'glsl-{}'.format(version
), 'execution', 'textureSize',
1215 '{}-textureSize-{}'.format(stage
, sampler
))] = PiglitGLTest(
1216 ['textureSize', stage
, sampler
])
1219 for sampler
in ['sampler1D', 'sampler2D', 'sampler3D', 'sampler1DArray',
1220 'sampler2DArray', 'isampler1D', 'isampler2D', 'isampler3D',
1221 'isampler1DArray', 'isampler2DArray', 'usampler1D',
1222 'usampler2D', 'usampler3D', 'usampler1DArray',
1224 profile
.test_list
[grouptools
.join(
1225 'spec', 'glsl-{}'.format(version
), 'execution', 'texelFetch',
1226 '{}-texelFetch-{}'.format(stage
, sampler
))] = PiglitGLTest(
1227 ['texelFetch', stage
, sampler
])
1228 profile
.test_list
[grouptools
.join(
1229 'spec', 'glsl-{}'.format(version
), 'execution', 'texelFetchOffset',
1230 '{}-texelFetch-{}'.format(stage
, sampler
))] = PiglitGLTest(
1231 ['texelFetch', 'offset', stage
, sampler
])
1233 # texelFetch() with EXT_texture_swizzle mode "b0r1":
1234 for type in ['i', 'u', '']:
1235 profile
.test_list
[grouptools
.join(
1236 'spec', 'glsl-{}'.format(version
), 'execution', 'texelFetch',
1237 '{}-texelFetch-{}sampler2Darray-swizzle'.format(stage
, type))] = \
1238 PiglitGLTest(['texelFetch', stage
, '{}sampler2DArray'.format(type),
1241 for type in ('i', 'u', ''):
1242 for sampler
in ('sampler2DMS', 'sampler2DMSArray'):
1243 for sample_count
in MSAA_SAMPLE_COUNTS
:
1244 stype
= '{}{}'.format(type, sampler
)
1245 profile
.test_list
[grouptools
.join(
1246 'spec', 'arb_shader_texture_image_samples',
1247 'textureSamples', '{}-{}-{}'.format(stage
, stype
, sample_count
))
1249 'textureSamples', stage
, stype
, sample_count
])
1251 with profile
.test_list
.group_manager(
1253 grouptools
.join('spec', 'glsl-1.30')) as g
:
1254 g(['glsl-1.30-texel-offset-limits'], 'texel-offset-limits')
1255 g(['built-in-constants',
1256 os
.path
.join('spec', 'glsl-1.30', 'minimum-maximums.txt')],
1257 'built-in constants',
1258 override_class
=BuiltInConstantsTest
)
1260 with profile
.test_list
.group_manager(
1262 grouptools
.join('spec', 'glsl-1.30', 'execution')) as g
:
1263 g(['texelFetch', 'fs', 'sampler1D', '1-513'])
1264 g(['texelFetch', 'fs', 'sampler1DArray', '1x71-501x71'])
1265 g(['texelFetch', 'fs', 'sampler1DArray', '1x281-501x281'])
1266 g(['texelFetch', 'fs', 'sampler1DArray', '71x1-71x281'])
1267 g(['texelFetch', 'fs', 'sampler1DArray', '281x1-281x281'])
1268 g(['texelFetch', 'fs', 'sampler2D', '1x71-501x71'])
1269 g(['texelFetch', 'fs', 'sampler2D', '1x281-501x281'])
1270 g(['texelFetch', 'fs', 'sampler2D', '71x1-71x281'])
1271 g(['texelFetch', 'fs', 'sampler2D', '281x1-281x281'])
1272 g(['texelFetch', 'fs', 'sampler3D', '1x129x9-98x129x9'])
1273 g(['texelFetch', 'fs', 'sampler3D', '98x1x9-98x129x9'])
1274 g(['texelFetch', 'fs', 'sampler3D', '98x129x1-98x129x9'])
1275 g(['texelFetch', 'fs', 'sampler2DArray', '1x129x9-98x129x9'])
1276 g(['texelFetch', 'fs', 'sampler2DArray', '98x1x9-98x129x9'])
1277 g(['texelFetch', 'fs', 'sampler2DArray', '98x129x1-98x129x9'])
1278 g(['fs-texelFetch-2D'])
1279 g(['fs-texelFetchOffset-2D'])
1280 g(['fs-textureOffset-2D'])
1281 g(['fs-discard-exit-2'])
1282 g(['vertexid-beginend'])
1283 g(['vertexid-drawarrays'])
1284 g(['vertexid-drawelements'])
1285 g(['fs-execution-ordering'])
1287 for stage
in ['1D', '2D', '3D', 'Cube', '1DShadow', '2DShadow', '1DArray',
1288 '2DArray', '1DArrayShadow', 'CubeArray']:
1289 g(['tex-miplevel-selection', 'textureLod', stage
])
1291 for stage
in ['1D', '2D', '3D', 'Cube', '1DShadow', '2DShadow',
1292 'CubeShadow', '1DArray', '2DArray', 'CubeArray',
1294 g(['tex-miplevel-selection', 'texture(bias)', stage
])
1296 for stage
in ['1D', '2D', '3D', 'Cube', '1DShadow', '2DShadow',
1297 'CubeShadow', '1DArray', '2DArray', 'CubeArray',
1298 '1DArrayShadow', '2DArrayShadow', '2DRect', '2DRectShadow',
1300 g(['tex-miplevel-selection', 'texture()', stage
])
1302 for stage
in ['1D', '2D', '3D', '2DRect', '2DRectShadow', '1DShadow',
1303 '2DShadow', '1DArray', '2DArray', '1DArrayShadow',
1305 g(['tex-miplevel-selection', 'textureOffset', stage
])
1307 for stage
in ['1D', '2D', '3D', '1DShadow', '2DShadow', '1DArray',
1308 '2DArray', '1DArrayShadow']:
1309 g(['tex-miplevel-selection', 'textureOffset(bias)', stage
])
1311 for stage
in ['1D', '1D_ProjVec4', '2D', '2D_ProjVec4', '3D', '1DShadow',
1312 '2DShadow', '2DRect', '2DRect_ProjVec4', '2DRectShadow']:
1313 g(['tex-miplevel-selection', 'textureProj', stage
])
1315 for stage
in ['1D', '1D_ProjVec4', '2D', '2D_ProjVec4', '3D', '1DShadow',
1317 g(['tex-miplevel-selection', 'textureProj(bias)', stage
])
1319 for stage
in ['1D', '1D_ProjVec4', '2D', '2D_ProjVec4', '3D', '2DRect',
1320 '2DRect_ProjVec4', '2DRectShadow', '1DShadow', '2DShadow']:
1321 g(['tex-miplevel-selection', 'textureProjOffset', stage
])
1323 for stage
in ['1D', '1D_ProjVec4', '2D', '2D_ProjVec4', '3D', '1DShadow',
1325 g(['tex-miplevel-selection', 'textureProjOffset(bias)', stage
])
1327 for stage
in ['1D', '2D', '3D', '1DShadow', '2DShadow', '1DArray',
1328 '2DArray', '1DArrayShadow']:
1329 g(['tex-miplevel-selection', 'textureLodOffset', stage
])
1331 for stage
in ['1D', '2D', '3D', '1D_ProjVec4', '2D_ProjVec4', '1DShadow',
1333 g(['tex-miplevel-selection', 'textureProjLod', stage
])
1334 g(['tex-miplevel-selection', 'textureProjLodOffset', stage
])
1336 for stage
in ['1D', '2D', '3D', 'Cube', '2DRect', '2DRectShadow',
1337 '1DShadow', '2DShadow', 'CubeShadow', '1DArray', '2DArray',
1338 '1DArrayShadow', '2DArrayShadow', 'CubeArray']:
1339 g(['tex-miplevel-selection', 'textureGrad', stage
])
1341 for stage
in ['1D', '2D', '3D', '2DRect', '2DRectShadow', '1DShadow',
1342 '2DShadow', '1DArray', '2DArray', '1DArrayShadow',
1344 g(['tex-miplevel-selection', 'textureGradOffset', stage
])
1346 for stage
in ['1D', '2D', '3D', '1D_ProjVec4', '2D_ProjVec4', '2DRect',
1347 '2DRect_ProjVec4', '1DShadow', '2DShadow', '2DRectShadow']:
1348 g(['tex-miplevel-selection', 'textureProjGrad', stage
])
1349 g(['tex-miplevel-selection', 'textureProjGradOffset', stage
])
1351 with profile
.test_list
.group_manager(
1353 grouptools
.join('spec', 'glsl-1.30', 'linker', 'clipping')) as g
:
1354 g(['mixing-clip-distance-and-clip-vertex-disallowed'])
1356 with profile
.test_list
.group_manager(
1358 grouptools
.join('spec', 'glsl-1.30', 'execution')) as g
:
1359 for arg
in ['vs_basic', 'vs_xfb', 'vs_fbo', 'fs_basic', 'fs_fbo']:
1360 g(['isinf-and-isnan', arg
])
1362 with profile
.test_list
.group_manager(
1364 grouptools
.join('spec', 'glsl-1.30', 'execution', 'clipping')) as g
:
1365 g(['max-clip-distances'])
1366 g(['clip-plane-transformation', 'pos'])
1368 with profile
.test_list
.group_manager(
1370 grouptools
.join('spec', 'glsl-1.30', 'api')) as g
:
1371 g(['getactiveattrib', '130'], 'getactiveattrib 130')
1373 # Group spec/glsl-1.40
1374 with profile
.test_list
.group_manager(
1375 BuiltInConstantsTest
,
1376 grouptools
.join('spec', 'glsl-1.40')) as g
:
1377 g(['built-in-constants',
1378 os
.path
.join('spec', 'glsl-1.40', 'minimum-maximums.txt')],
1379 'built-in constants')
1381 with profile
.test_list
.group_manager(
1383 grouptools
.join('spec', 'glsl-1.40', 'execution')) as g
:
1384 g(['glsl-1.40-tf-no-position'], 'tf-no-position')
1386 textureSize_samplers_140
= textureSize_samplers_130
+ [
1387 'sampler2DRect', 'isampler2DRect', 'sampler2DRectShadow', 'samplerBuffer',
1388 'isamplerBuffer', 'usamplerBuffer']
1389 for stage
in ['vs', 'gs', 'fs', 'tes']:
1390 if stage
== 'gs' or stage
== 'tes':
1395 for sampler
in textureSize_samplers_140
:
1396 profile
.test_list
[grouptools
.join(
1397 'spec', 'glsl-{}'.format(version
), 'execution', 'textureSize',
1398 '{}-textureSize-{}'.format(stage
, sampler
))] = PiglitGLTest(
1399 ['textureSize', '140', stage
, sampler
])
1400 for stage
in ['vs', 'gs', 'fs']:
1406 for sampler
in ['sampler2DRect', 'usampler2DRect', 'isampler2DRect']:
1407 profile
.test_list
[grouptools
.join(
1408 'spec', 'glsl-{}'.format(version
), 'execution', 'texelFetch',
1409 '{}-texelFetch-{}'.format(stage
, sampler
))] = PiglitGLTest(
1410 ['texelFetch', '140', stage
, sampler
])
1411 profile
.test_list
[grouptools
.join(
1412 'spec', 'glsl-{}'.format(version
), 'execution', 'texelFetchOffset',
1413 '{}-{}'.format(stage
, sampler
))] = PiglitGLTest(
1414 ['texelFetch', 'offset', '140', stage
, sampler
])
1416 with profile
.test_list
.group_manager(
1418 grouptools
.join('spec', 'glsl-1.50')) as g
:
1419 g(['built-in-constants',
1420 os
.path
.join('spec', 'glsl-1.50', 'minimum-maximums.txt')],
1421 'built-in constants',
1422 override_class
=BuiltInConstantsTest
)
1423 g(['built-in-constants',
1424 os
.path
.join('spec', 'glsl-1.50', 'minimum-maximums-compat.txt')],
1425 'built-in constants compatibility',
1426 override_class
=BuiltInConstantsTest
)
1427 g(['glsl-1.50-gs-emits-too-few-verts'], 'gs-emits-too-few-verts')
1428 g(['glsl-1.50-geometry-end-primitive-optional-with-points-out'],
1429 'gs-end-primitive-optional-with-points-out')
1430 g(['glsl-1.50-gs-max-output', '-scan', '1', '20'], 'gs-max-output')
1431 g(['glsl-1.50-gs-max-output-components'], 'gs-max-output-components')
1432 g(['glsl-1.50-getshaderiv-may-return-GS'], 'getshaderiv-may-return-GS')
1433 g(['glsl-1.50-query-gs-prim-types'], 'query-gs-prim-types')
1434 g(['glsl-1.50-transform-feedback-type-and-size'],
1435 'transform-feedback-type-and-size')
1436 g(['glsl-1.50-transform-feedback-vertex-id'],
1437 'transform-feedback-vertex-id')
1438 g(['glsl-1.50-transform-feedback-builtins'], 'transform-feedback-builtins')
1440 for draw
in ['', 'indexed']:
1441 for prim
in ['GL_LINES_ADJACENCY', 'GL_LINE_STRIP_ADJACENCY',
1442 'GL_TRIANGLES_ADJACENCY', 'GL_TRIANGLE_STRIP_ADJACENCY']:
1443 g(['arb_geometry_shader4-ignore-adjacent-vertices',
1444 'core', draw
, prim
], run_concurrent
=False)
1446 for subtest
in ['unnamed', 'named', 'array']:
1447 g(['glsl-1.50-interface-block-centroid', subtest
])
1449 for layout_type
in ['points', 'lines', 'lines_adjacency', 'triangles',
1450 'triangles_adjacency']:
1451 g(['glsl-1.50-gs-mismatch-prim-type', layout_type
])
1453 for layout
in ['points', 'lines', 'lines_adjacency', 'triangles',
1454 'triangles_adjacency', 'line_strip', 'triangle_strip']:
1455 g(['glsl-1.50-gs-input-layout-qualifiers', layout
])
1456 g(['glsl-1.50-gs-output-layout-qualifiers', layout
])
1458 with profile
.test_list
.group_manager(
1460 grouptools
.join('spec', 'glsl-1.50', 'execution')) as g
:
1461 g(['glsl-1.50-get-active-attrib-array'], 'get-active-attrib-array')
1462 g(['glsl-1.50-interface-blocks-api-access-members'],
1463 'interface-blocks-api-access-members')
1464 g(['glsl-1.50-vs-input-arrays'], 'vs-input-arrays')
1465 g(['glsl-1.50-vs-named-block-no-modify'], 'vs-named-block-no-modify')
1467 # max_vertices of 32 and 128 are important transition points for
1468 # mesa/i965 (they are the number of bits in a float and a vec4,
1469 # respectively), so test around there. Also test 0, which means the
1470 # maximum number of geometry shader output vertices supported by the
1472 with profile
.test_list
.group_manager(
1474 grouptools
.join('spec', 'glsl-1.50', 'execution', 'geometry')) as g
:
1475 for i
in [31, 32, 33, 34, 127, 128, 129, 130, 0]:
1476 g(['glsl-1.50-geometry-end-primitive', str(i
)],
1477 'end-primitive {0}'.format(i
))
1479 for prim_type
in ['GL_POINTS', 'GL_LINE_LOOP', 'GL_LINE_STRIP', 'GL_LINES',
1480 'GL_TRIANGLES', 'GL_TRIANGLE_STRIP', 'GL_TRIANGLE_FAN',
1481 'GL_LINES_ADJACENCY', 'GL_LINE_STRIP_ADJACENCY',
1482 'GL_TRIANGLES_ADJACENCY', 'GL_TRIANGLE_STRIP_ADJACENCY']:
1483 g(['glsl-1.50-geometry-primitive-types', prim_type
],
1484 'primitive-types {0}'.format(prim_type
))
1486 for restart_index
in ['ffs', 'other']:
1487 g(['glsl-1.50-geometry-primitive-id-restart', prim_type
,
1489 'primitive-id-restart {0} {1}'.format(prim_type
, restart_index
))
1491 for prim_type
in ['GL_TRIANGLE_STRIP', 'GL_TRIANGLE_STRIP_ADJACENCY']:
1492 for restart_index
in ['ffs', 'other']:
1493 g(['glsl-1.50-geometry-tri-strip-ordering-with-prim-restart',
1494 prim_type
, restart_index
],
1495 'tri-strip-ordering-with-prim-restart {0} {1}'.format(
1496 prim_type
, restart_index
))
1498 with profile
.test_list
.group_manager(
1499 BuiltInConstantsTest
, grouptools
.join('spec', 'glsl-3.30')) as g
:
1500 g(['built-in-constants',
1501 os
.path
.join('spec', 'glsl-3.30', 'minimum-maximums.txt')],
1502 'built-in constants')
1504 with profile
.test_list
.group_manager(
1505 BuiltInConstantsTest
, grouptools
.join('spec', 'glsl-es-3.00')) as g
:
1506 g(['built-in-constants_gles3',
1507 os
.path
.join('spec', 'glsl-es-3.00', 'minimum-maximums.txt')],
1508 'built-in constants')
1510 with profile
.test_list
.group_manager(
1512 grouptools
.join('spec', 'glsl-es-3.00', 'execution')) as g
:
1513 g(['varying-struct-centroid_gles3'])
1515 with profile
.test_list
.group_manager(
1516 BuiltInConstantsTest
, grouptools
.join('spec', 'glsl-es-3.10')) as g
:
1517 g(['built-in-constants_gles3',
1518 os
.path
.join('spec', 'glsl-es-3.10', 'minimum-maximums.txt')],
1519 'built-in constants')
1521 # AMD_performance_monitor
1522 with profile
.test_list
.group_manager(
1523 PiglitGLTest
, grouptools
.join('spec', 'AMD_performance_monitor')) as g
:
1524 g(['amd_performance_monitor_api'], 'api', run_concurrent
=False)
1525 g(['amd_performance_monitor_api'], 'vc4')
1526 g(['amd_performance_monitor_measure'], 'measure', run_concurrent
=False)
1528 # Group ARB_arrays_of_arrays
1529 with profile
.test_list
.group_manager(
1531 grouptools
.join('spec', 'ARB_arrays_of_arrays')) as g
:
1532 g(['arb_arrays_of_arrays-max-binding'], run_concurrent
=False)
1534 # Group ARB_point_sprite
1535 with profile
.test_list
.group_manager(
1536 PiglitGLTest
, grouptools
.join('spec', 'ARB_point_sprite')) as g
:
1537 g(['arb_point_sprite-checkerboard'], run_concurrent
=False)
1538 g(['arb_point_sprite-mipmap'])
1540 # Group ARB_tessellation_shader
1541 with profile
.test_list
.group_manager(
1542 PiglitGLTest
, grouptools
.join('spec', 'ARB_tessellation_shader')) as g
:
1543 g(['arb_tessellation_shader-get-tcs-params'])
1544 g(['arb_tessellation_shader-get-tes-params'])
1545 g(['arb_tessellation_shader-minmax'])
1546 g(['arb_tessellation_shader-immediate-mode-draw-patches'])
1547 g(['arb_tessellation_shader-invalid-get-program-params'])
1548 g(['arb_tessellation_shader-invalid-patch-vertices-range'])
1549 g(['arb_tessellation_shader-invalid-primitive'])
1550 g(['built-in-constants',
1551 os
.path
.join('spec', 'arb_tessellation_shader', 'minimum-maximums.txt')],
1552 'built-in-constants',
1553 override_class
=BuiltInConstantsTest
)
1554 g(['arb_tessellation_shader-large-uniforms'])
1555 g(['arb_tessellation_shader-layout-mismatch'])
1556 g(['arb_tessellation_shader-tes-gs-max-output', '-small', '-scan', '1', '50'])
1558 # Group ARB_texture_multisample
1559 with profile
.test_list
.group_manager(
1560 PiglitGLTest
, grouptools
.join('spec', 'ARB_texture_multisample')) as g
:
1561 g(['arb_texture_multisample-large-float-texture'], 'large-float-texture',
1562 run_concurrent
=False)
1563 g(['arb_texture_multisample-large-float-texture', '--array'],
1564 'large-float-texture-array', run_concurrent
=False)
1565 g(['arb_texture_multisample-large-float-texture', '--fp16'],
1566 'large-float-texture-fp16', run_concurrent
=False)
1567 g(['arb_texture_multisample-large-float-texture', '--array', '--fp16'],
1568 'large-float-texture-array-fp16', run_concurrent
=False)
1569 g(['arb_texture_multisample-minmax'])
1570 g(['texelFetch', 'fs', 'sampler2DMS', '4', '1x71-501x71'])
1571 g(['texelFetch', 'fs', 'sampler2DMS', '4', '1x130-501x130'])
1572 g(['texelFetch', 'fs', 'sampler2DMS', '4', '71x1-71x130'])
1573 g(['texelFetch', 'fs', 'sampler2DMS', '4', '281x1-281x130'])
1574 g(['texelFetch', 'fs', 'sampler2DMSArray', '4', '1x129x9-98x129x9'])
1575 g(['texelFetch', 'fs', 'sampler2DMSArray', '4', '98x1x9-98x129x9'])
1576 g(['texelFetch', 'fs', 'sampler2DMSArray', '4', '98x129x1-98x129x9'])
1577 g(['arb_texture_multisample-texstate'])
1578 g(['arb_texture_multisample-errors'])
1579 for sample_count
in MSAA_SAMPLE_COUNTS
:
1580 g(['arb_texture_multisample-texelfetch', sample_count
])
1581 g(['arb_texture_multisample-sample-mask'])
1582 g(['arb_texture_multisample-dsa-texelfetch'])
1583 g(['arb_texture_multisample-sample-mask-value'])
1584 g(['arb_texture_multisample-sample-mask-execution'])
1585 g(['arb_texture_multisample-sample-mask-execution', '-tex'])
1586 g(['arb_texture_multisample-negative-max-samples'])
1587 g(['arb_texture_multisample-teximage-3d-multisample'])
1588 g(['arb_texture_multisample-teximage-2d-multisample'])
1589 g(['arb_texture_multisample-sample-depth']),
1590 g(['arb_texture_multisample-stencil-clear']),
1591 g(['arb_texture_multisample-clear'])
1593 samplers_atm
= ['sampler2DMS', 'isampler2DMS', 'usampler2DMS',
1594 'sampler2DMSArray', 'isampler2DMSArray', 'usampler2DMSArray']
1595 with profile
.test_list
.group_manager(
1597 grouptools
.join('spec', 'ARB_texture_multisample',
1598 'fb-completeness')) as g
:
1600 for sample_count
in MSAA_SAMPLE_COUNTS
:
1602 g(['arb_texture_multisample-fb-completeness', sample_count
],
1605 with profile
.test_list
.group_manager(
1607 grouptools
.join('spec', 'ARB_texture_multisample', 'texelFetch')) as g
:
1609 stages
= ['vs', 'gs', 'fs']
1610 for sampler
, stage
, sample_count
in itertools
.product(
1611 samplers_atm
, stages
, MSAA_SAMPLE_COUNTS
):
1612 g(['texelFetch', stage
, sampler
, sample_count
],
1613 '{}-{}-{}'.format(sample_count
, stage
, sampler
))
1615 with profile
.test_list
.group_manager(
1617 grouptools
.join('spec', 'ARB_texture_multisample',
1618 'sample-position')) as g
:
1620 for sample_count
in MSAA_SAMPLE_COUNTS
:
1621 g(['arb_texture_multisample-sample-position', sample_count
],
1625 with profile
.test_list
.group_manager(
1627 grouptools
.join('spec', 'ARB_texture_multisample',
1628 'textureSize')) as g
:
1630 stages
= ['vs', 'gs', 'fs', 'tes']
1631 for stage
, sampler
in itertools
.product(stages
, samplers_atm
):
1632 g(['textureSize', stage
, sampler
],
1633 '{}-textureSize-{}'.format(stage
, sampler
))
1635 # Group ARB_texture_gather
1636 with profile
.test_list
.group_manager(
1638 grouptools
.join('spec', 'ARB_texture_gather')) as g
:
1639 stages
= ['vs', 'fs']
1640 comps
= ['r', 'rg', 'rgb', 'rgba']
1641 types
= ['unorm', 'float', 'int', 'uint']
1642 samplers
= ['2D', '2DArray', 'Cube', 'CubeArray']
1643 for stage
, comp
, type_
, sampler
in itertools
.product(
1644 stages
, comps
, types
, samplers
):
1645 for swiz
in ['red', 'green', 'blue', 'alpha'][:len(comp
)] + ['', 'zero', 'one']:
1646 for func
in ['textureGather'] if 'Cube' in sampler
else ['textureGather', 'textureGatherOffset']:
1647 testname
= grouptools
.join(
1648 func
, '{}-{}-{}-{}-{}'.format(
1650 swiz
if swiz
else 'none',
1652 g(['textureGather', stage
,
1653 'offset' if func
== 'textureGatherOffset' else '',
1654 comp
, swiz
, type_
, sampler
], testname
)
1657 with profile
.test_list
.group_manager(
1659 grouptools
.join('spec', 'ARB_stencil_texturing')) as g
:
1660 g(['arb_stencil_texturing-draw'], 'draw')
1662 with profile
.test_list
.group_manager(
1664 grouptools
.join('spec', 'ARB_stencil_texturing', 'glBlitFramebuffer corrupts state')) as g
:
1665 for t
in ['1D', '2D', 'CUBE_MAP', '1D_ARRAY', '2D_ARRAY', 'CUBE_MAP_ARRAY', '2D_MULTISAMPLE', '2D_MULTISAMPLE_ARRAY', 'RECTANGLE']:
1666 target
= 'GL_TEXTURE_' + t
1667 g(['arb_stencil_texturing-blit_corrupts_state', target
], target
)
1670 with profile
.test_list
.group_manager(
1671 PiglitGLTest
, grouptools
.join('spec', 'ARB_sync')) as g
:
1672 g(['arb_sync-client-wait-errors'], 'ClientWaitSync-errors')
1673 g(['arb_sync-delete'], 'DeleteSync')
1674 g(['arb_sync-fence-sync-errors'], 'FenceSync-errors')
1675 g(['arb_sync-get-sync-errors'], 'GetSynciv-errors')
1676 g(['arb_sync-is-sync'], 'IsSync')
1677 g(['arb_sync-repeat-wait'], 'repeat-wait')
1678 g(['arb_sync-sync-initialize'], 'sync-initialize')
1679 g(['arb_sync-timeout-zero'], 'timeout-zero')
1680 g(['arb_sync-WaitSync-errors'], 'WaitSync-errors')
1681 g(['arb_sync-ClientWaitSync-timeout'], 'ClientWaitSync-timeout')
1682 g(['sync_api'], run_concurrent
=False)
1684 # Group ARB_ES2_compatibility
1685 with profile
.test_list
.group_manager(
1686 PiglitGLTest
, grouptools
.join('spec', 'ARB_ES2_compatibility')) as g
:
1687 g(['arb_es2_compatibility-depthrangef'], run_concurrent
=False)
1688 g(['arb_es2_compatibility-drawbuffers'], run_concurrent
=False)
1689 g(['arb_es2_compatibility-getshaderprecisionformat'], run_concurrent
=False)
1690 g(['arb_es2_compatibility-maxvectors'], run_concurrent
=False)
1691 g(['arb_es2_compatibility-shadercompiler'], run_concurrent
=False)
1692 g(['arb_es2_compatibility-releaseshadercompiler'], run_concurrent
=False)
1693 g(['arb_es2_compatibility-fixed-type'], run_concurrent
=False)
1694 g(['fbo-missing-attachment-clear'], run_concurrent
=False)
1695 g(['fbo-missing-attachment-blit', 'es2', 'to'],
1696 'FBO blit to missing attachment (ES2 completeness rules)')
1697 g(['fbo-missing-attachment-blit', 'es2', 'from'],
1698 'FBO blit from missing attachment (ES2 completeness rules)')
1699 g(['arb_get_program_binary-overrun', 'shader'],
1700 'NUM_SHADER_BINARY_FORMATS over-run check')
1701 add_texwrap_format_tests(g
, 'GL_ARB_ES2_compatibility')
1702 add_fbo_formats_tests(g
, 'GL_ARB_ES2_compatibility')
1705 # Group ARB_get_program_binary
1706 with profile
.test_list
.group_manager(
1707 PiglitGLTest
, grouptools
.join('spec', 'ARB_get_program_binary')) as g
:
1708 g(['arb_get_program_binary-api-errors'],
1709 'misc. API error checks')
1710 g(['arb_get_program_binary-overrun', 'program'],
1711 'NUM_PROGRAM_BINARY_FORMATS over-run check')
1712 g(['arb_get_program_binary-retrievable_hint'],
1713 'PROGRAM_BINARY_RETRIEVABLE_HINT')
1714 g(['arb_get_program_binary-xfb-varyings'],
1716 g(['arb_get_program_binary-restore-implicit-use-program'],
1717 'restore-implicit-use-program')
1718 g(['arb_get_program_binary-reset-uniform'],
1721 with profile
.test_list
.group_manager(
1722 PiglitGLTest
, grouptools
.join('spec', 'EXT_depth_bounds_test')) as g
:
1725 with profile
.test_list
.group_manager(
1726 PiglitGLTest
, grouptools
.join('spec', 'ARB_depth_clamp')) as g
:
1728 g(['depth-clamp-range'])
1729 g(['depth-clamp-status'])
1731 # AMD_depth_clamp_separate
1732 with profile
.test_list
.group_manager(
1733 PiglitGLTest
, grouptools
.join('spec', 'AMD_depth_clamp_separate')) as g
:
1734 g(['amd_depth_clamp_separate_status'])
1735 g(['amd_depth_clamp_separate_range'])
1737 # Group ARB_draw_elements_base_vertex
1738 # Group ARB_draw_elements_base_vertex
1739 with profile
.test_list
.group_manager(
1741 grouptools
.join('spec', 'ARB_draw_elements_base_vertex')) as g
:
1742 g(['arb_draw_elements_base_vertex-dlist'], 'dlist')
1743 g(['arb_draw_elements_base_vertex-drawelements'])
1744 g(['arb_draw_elements_base_vertex-drawelements', 'user_varrays'],
1745 'arb_draw_elements_base_vertex-drawelements-user_varrays')
1746 g(['arb_draw_elements_base_vertex-negative-index'])
1747 g(['arb_draw_elements_base_vertex-bounds'])
1748 g(['arb_draw_elements_base_vertex-negative-index', 'user_varrays'],
1749 'arb_draw_elements_base_vertex-negative-index-user_varrays')
1750 g(['arb_draw_elements_base_vertex-drawelements-instanced'])
1751 g(['arb_draw_elements_base_vertex-drawrangeelements'])
1752 g(['arb_draw_elements_base_vertex-multidrawelements'])
1754 # Group ARB_draw_instanced
1755 with profile
.test_list
.group_manager(
1757 grouptools
.join('spec', 'ARB_draw_instanced')) as g
:
1758 g(['arb_draw_instanced-dlist'], 'dlist')
1759 g(['arb_draw_instanced-elements'], 'elements')
1760 g(['arb_draw_instanced-negative-arrays-first-negative'],
1761 'negative-arrays-first-negative')
1762 g(['arb_draw_instanced-negative-elements-type'],
1763 'negative-elements-type')
1764 g(['arb_draw_instanced-drawarrays'])
1766 # Group ARB_draw_indirect
1767 with profile
.test_list
.group_manager(
1769 grouptools
.join('spec', 'ARB_draw_indirect')) as g
:
1770 g(['arb_draw_indirect-api-errors'])
1771 g(['arb_draw_indirect-draw-arrays'])
1772 g(['arb_draw_indirect-draw-arrays-compat'])
1773 g(['arb_draw_indirect-draw-arrays-prim-restart'])
1774 g(['arb_draw_indirect-draw-elements'])
1775 g(['arb_draw_indirect-draw-elements-compat'])
1776 g(['arb_draw_indirect-draw-arrays-base-instance'])
1777 g(['arb_draw_indirect-draw-elements-base-instance'])
1778 g(['arb_draw_indirect-draw-elements-prim-restart'])
1779 g(['arb_draw_indirect-draw-elements-prim-restart-ugly'])
1780 g(['arb_draw_indirect-draw-arrays-instances'])
1781 g(['arb_draw_indirect-draw-arrays-shared-binding'])
1782 g(['arb_draw_indirect-transform-feedback'])
1783 g(['arb_draw_indirect-vertexid'],
1784 'gl_VertexID used with glDrawArraysIndirect')
1785 g(['arb_draw_indirect-vertexid', 'elements'],
1786 'gl_VertexID used with glDrawElementsIndirect')
1788 # Group ARB_draw_indirect
1789 with profile
.test_list
.group_manager(
1791 grouptools
.join('spec', 'ARB_multi_draw_indirect')) as g
:
1792 g(['gl-3.0-multidrawarrays-vertexid', '-indirect'])
1793 g(['arb_draw_elements_base_vertex-multidrawelements', '-indirect'])
1795 # Group ARB_fragment_program
1796 with profile
.test_list
.group_manager(
1798 grouptools
.join('spec', 'ARB_fragment_program')) as g
:
1799 g(['arb_fragment_program-minmax'], 'minmax')
1803 g(['fp-fragment-position'])
1804 g(['fp-incomplete-tex'])
1805 g(['fp-indirections'])
1806 g(['fp-indirections2'])
1809 g(['fp-lit-src-equals-dst'])
1813 g(['arb_fragment_program-sparse-samplers'], 'sparse-samplers')
1814 g(['incomplete-texture', 'arb_fp'], 'incomplete-texture-arb_fp')
1816 with profile
.test_list
.group_manager(
1818 grouptools
.join('spec', 'NV_fragment_program_option')) as g
:
1820 g(['fp-condition_codes-01'])
1825 with profile
.test_list
.group_manager(
1827 grouptools
.join('spec', 'ATI_fragment_shader')) as g
:
1828 g(['ati_fragment_shader-api-alphafirst'])
1829 g(['ati_fragment_shader-api-gen'])
1830 g(['ati_fragment_shader-error01-genzero'])
1831 g(['ati_fragment_shader-error02-inside'])
1832 g(['ati_fragment_shader-error03-outside'])
1833 g(['ati_fragment_shader-error04-endshader'])
1834 g(['ati_fragment_shader-error05-passes'])
1835 g(['ati_fragment_shader-error06-regswizzle'])
1836 g(['ati_fragment_shader-error07-instcount'])
1837 g(['ati_fragment_shader-error08-secondary'])
1838 g(['ati_fragment_shader-error09-allconst'])
1839 g(['ati_fragment_shader-error10-dotx'])
1840 g(['ati_fragment_shader-error11-invaliddst'])
1841 g(['ati_fragment_shader-error12-invalidsrc'])
1842 g(['ati_fragment_shader-error13-invalidarg'])
1843 g(['ati_fragment_shader-error14-invalidmod'])
1844 g(['ati_fragment_shader-render-constants'])
1845 g(['ati_fragment_shader-render-default'])
1846 g(['ati_fragment_shader-render-fog'])
1847 g(['ati_fragment_shader-render-notexture'])
1848 g(['ati_fragment_shader-render-precedence'])
1849 g(['ati_fragment_shader-render-sources'])
1850 g(['ati_fragment_shader-render-textargets'])
1852 # Group ARB_framebuffer_object
1853 with profile
.test_list
.group_manager(
1855 grouptools
.join('spec', 'ARB_framebuffer_object')) as g
:
1856 g(['same-attachment-glFramebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT'])
1857 g(['same-attachment-glFramebufferRenderbuffer-GL_DEPTH_STENCIL_ATTACHMENT'])
1858 g(['arb_framebuffer_object-get-attachment-parameter-default-framebuffer'], run_concurrent
=False)
1860 g(['fbo-blit-stretch'], run_concurrent
=False)
1861 g(['fbo-blit-scaled-linear'])
1862 g(['fbo-attachments-blit-scaled-linear'])
1864 g(['fbo-luminance-alpha'])
1865 g(['fbo-getframebufferattachmentparameter-01'])
1866 g(['fbo-gl_pointcoord'])
1867 g(['fbo-incomplete'])
1868 g(['fbo-incomplete-invalid-texture'])
1869 g(['fbo-incomplete-texture-01'])
1870 g(['fbo-incomplete-texture-02'])
1871 g(['fbo-incomplete-texture-03'])
1872 g(['fbo-incomplete-texture-04'])
1873 g(['fbo-mipmap-copypix'])
1874 g(['fbo-viewport'], run_concurrent
=False)
1875 g(['fbo-missing-attachment-blit', 'to'], 'FBO blit to missing attachment')
1876 g(['fbo-missing-attachment-blit', 'from'],
1877 'FBO blit from missing attachment')
1878 g(['fbo-scissor-blit', 'fbo'], 'fbo-scissor-blit fbo')
1879 g(['fbo-scissor-blit', 'window'], 'fbo-scissor-blit window',
1880 run_concurrent
=False)
1881 g(['fbo-tex-rgbx'], 'fbo-tex-rgbx')
1882 g(['arb_framebuffer_object-mixed-buffer-sizes'], 'mixed-buffer-sizes')
1883 g(['arb_framebuffer_object-negative-readpixels-no-rb'],
1884 'negative-readpixels-no-rb')
1885 g(['arb_framebuffer_object-depth-stencil-blit', 'depth', 'GL_DEPTH_COMPONENT16'])
1886 g(['arb_framebuffer_object-depth-stencil-blit', 'depth', 'GL_DEPTH_COMPONENT24'])
1887 g(['arb_framebuffer_object-depth-stencil-blit', 'depth', 'GL_DEPTH_COMPONENT32'])
1888 g(['arb_framebuffer_object-depth-stencil-blit', 'depth', 'GL_DEPTH_COMPONENT32F'])
1889 g(['arb_framebuffer_object-depth-stencil-blit', 'stencil', 'GL_STENCIL_INDEX1'])
1890 g(['arb_framebuffer_object-depth-stencil-blit', 'stencil', 'GL_STENCIL_INDEX4'])
1891 g(['arb_framebuffer_object-depth-stencil-blit', 'stencil', 'GL_STENCIL_INDEX8'])
1892 g(['arb_framebuffer_object-depth-stencil-blit', 'stencil', 'GL_STENCIL_INDEX16'])
1893 g(['arb_framebuffer_object-depth-stencil-blit', 'depth', 'GL_DEPTH24_STENCIL8'])
1894 g(['arb_framebuffer_object-depth-stencil-blit', 'stencil', 'GL_DEPTH24_STENCIL8'])
1895 g(['arb_framebuffer_object-depth-stencil-blit', 'depth_stencil', 'GL_DEPTH24_STENCIL8'])
1896 g(['arb_framebuffer_object-depth-stencil-blit', 'depth', 'GL_DEPTH32F_STENCIL8'])
1897 g(['arb_framebuffer_object-depth-stencil-blit', 'stencil', 'GL_DEPTH32F_STENCIL8'])
1898 g(['arb_framebuffer_object-depth-stencil-blit', 'depth_stencil', 'GL_DEPTH32F_STENCIL8'])
1899 g(['fbo-drawbuffers-none', 'glClear'])
1900 g(['fbo-drawbuffers-none', 'glClearBuffer'])
1901 g(['fbo-drawbuffers-none', 'gl_FragColor'])
1902 g(['fbo-drawbuffers-none', 'gl_FragData'])
1903 g(['fbo-drawbuffers-none', 'use_frag_out'])
1904 g(['fbo-drawbuffers-none', 'glColorMaskIndexed'])
1905 g(['fbo-drawbuffers-none', 'glBlendFunci'])
1906 g(['fbo-drawbuffers-none', 'glDrawPixels'])
1907 g(['fbo-drawbuffers-none', 'glBlitFramebuffer'])
1908 g(['fbo-generatemipmap-cubemap'])
1909 g(['fbo-generatemipmap-cubemap', 'RGB9_E5'])
1910 g(['fbo-generatemipmap-cubemap', 'S3TC_DXT1'])
1911 g(['fbo-generatemipmap-1d'])
1912 g(['fbo-generatemipmap-1d', 'RGB9_E5'])
1913 g(['fbo-generatemipmap-3d'])
1914 g(['fbo-generatemipmap-3d', 'RGB9_E5'])
1915 for format
in ('rgba', 'depth', 'stencil'):
1916 for test_mode
in ('draw', 'read'):
1917 g(['framebuffer-blit-levels', test_mode
, format
],
1918 'framebuffer-blit-levels {} {}'.format(test_mode
, format
))
1920 # Group ARB_framebuffer_sRGB
1921 with profile
.test_list
.group_manager(
1923 grouptools
.join('spec', 'ARB_framebuffer_sRGB')) as g
:
1924 for backing_type
in ('texture', 'renderbuffer'):
1925 for srgb_types
in ('linear', 'srgb', 'linear_to_srgb',
1927 for blit_type
in ('single_sampled', 'upsample', 'downsample',
1929 for framebuffer_srgb_setting
in ('enabled',
1931 for src_fill_mode
in ('clear', 'render'):
1932 g(['arb_framebuffer_srgb-blit', backing_type
,
1933 srgb_types
, blit_type
, framebuffer_srgb_setting
,
1935 'blit {} {} {} {} {}'.format(
1936 backing_type
, srgb_types
, blit_type
,
1937 framebuffer_srgb_setting
, src_fill_mode
))
1938 g(['framebuffer-srgb'], run_concurrent
=False)
1939 g(['arb_framebuffer_srgb-clear'])
1940 g(['arb_framebuffer_srgb-pushpop'])
1941 g(['ext_framebuffer_multisample-fast-clear',
1942 'GL_EXT_texture_sRGB',
1945 g(['ext_framebuffer_multisample-fast-clear',
1946 'GL_EXT_texture_sRGB',
1950 g(['arb_framebuffer_srgb-fast-clear-blend'])
1951 g(['arb_framebuffer_srgb-srgb_conformance'])
1952 g(['arb_framebuffer_srgb-srgb_pbo'])
1955 with profile
.test_list
.group_manager(
1957 grouptools
.join('spec', 'ARB_gpu_shader5')) as g
:
1958 stages
= ['vs', 'fs']
1959 types
= ['unorm', 'float', 'int', 'uint']
1960 comps
= ['r', 'rg', 'rgb', 'rgba']
1961 samplers
= ['2D', '2DArray', 'Cube', 'CubeArray', '2DRect']
1962 for stage
, type_
, comp
, sampler
in itertools
.product(
1963 stages
, types
, comps
, samplers
):
1964 for func
in ['textureGather'] if 'Cube' in sampler
else ['textureGather', 'textureGatherOffset', 'textureGatherOffsets']:
1965 for cs
in range(len(comp
)):
1967 address_mode
= 'clamp' if sampler
== '2DRect' else 'repeat'
1968 cmd
= ['textureGather', stage
,
1969 'offsets' if func
== 'textureGatherOffsets' else 'nonconst' if func
== 'textureGatherOffset' else '',
1970 comp
, str(cs
), type_
, sampler
, address_mode
]
1971 testname
= grouptools
.join(func
, '{}-{}-{}-{}-{}'.format(
1972 stage
, comp
, cs
, type_
, sampler
))
1975 if func
== 'textureGatherOffset':
1976 # also add a constant offset version.
1977 testname
= grouptools
.join(
1978 func
, '{}-{}-{}-{}-{}-const'.format(
1979 stage
, comp
, cs
, type_
, sampler
))
1980 cmd
= ['textureGather', stage
, 'offset',
1981 comp
, str(cs
), type_
, sampler
, address_mode
]
1984 # test shadow samplers
1985 samplers
= ['2D', '2DArray', 'Cube', 'CubeArray', '2DRect']
1986 for stage
, sampler
in itertools
.product(stages
, samplers
):
1987 for func
in ['textureGather'] if 'Cube' in sampler
else ['textureGather', 'textureGatherOffset', 'textureGatherOffsets']:
1988 testname
= grouptools
.join(func
, '{}-r-none-shadow-{}'.format(
1990 cmd
= ['textureGather', stage
, 'shadow', 'r',
1991 'offsets' if func
== 'textureGatherOffsets' else 'nonconst' if func
== 'textureGatherOffset' else '',
1993 'clamp' if sampler
== '2DRect' else 'repeat']
1996 g(['arb_gpu_shader5-minmax'])
1997 g(['arb_gpu_shader5-invocation-id'])
1998 g(['arb_gpu_shader5-invocations_count_too_large'])
1999 g(['arb_gpu_shader5-xfb-streams'])
2000 g(['arb_gpu_shader5-stream_value_too_large'])
2001 g(['arb_gpu_shader5-emitstreamvertex_stream_too_large'])
2002 g(['arb_gpu_shader5-tf-wrong-stream-value'])
2003 g(['arb_gpu_shader5-xfb-streams-without-invocations'])
2004 g(['arb_gpu_shader5-xfb-streams-without-invocations', 'spirv'])
2005 g(['arb_gpu_shader5-emitstreamvertex_nodraw'])
2006 g(['arb_gpu_shader5-interpolateAtCentroid'])
2007 g(['arb_gpu_shader5-interpolateAtCentroid-packing'])
2008 g(['arb_gpu_shader5-interpolateAtCentroid-flat'])
2009 g(['arb_gpu_shader5-interpolateAtCentroid-centroid'])
2010 g(['arb_gpu_shader5-interpolateAtCentroid-noperspective'])
2011 g(['arb_gpu_shader5-interpolateAtSample'])
2012 g(['arb_gpu_shader5-interpolateAtSample-nonconst'])
2013 g(['arb_gpu_shader5-interpolateAtSample-different'])
2014 g(['arb_gpu_shader5-interpolateAtSample-different', 'uniform'])
2015 g(['arb_gpu_shader5-interpolateAtSample-dynamically-nonuniform'])
2016 g(['arb_gpu_shader5-interpolateAtOffset'])
2017 g(['arb_gpu_shader5-interpolateAtOffset-nonconst'])
2020 with profile
.test_list
.group_manager(
2022 grouptools
.join('spec', 'ARB_gpu_shader_fp64',
2023 'varying-packing')) as g
:
2024 for type in ['double', 'dvec2', 'dvec3', 'dvec4', 'dmat2', 'dmat3',
2025 'dmat4', 'dmat2x3', 'dmat2x4', 'dmat3x2', 'dmat3x4',
2026 'dmat4x2', 'dmat4x3']:
2027 for arrayspec
in ['array', 'separate', 'arrays_of_arrays']:
2028 g(['varying-packing-simple', type, arrayspec
],
2029 'simple {0} {1}'.format(type, arrayspec
))
2031 with profile
.test_list
.group_manager(
2033 grouptools
.join('spec', 'ARB_gpu_shader_fp64', 'execution')) as g
:
2034 g(['arb_gpu_shader_fp64-tf-separate'])
2035 g(['arb_gpu_shader_fp64-double-gettransformfeedbackvarying'])
2036 g(['arb_gpu_shader_fp64-tf-interleaved'])
2037 g(['arb_gpu_shader_fp64-tf-interleaved-aligned'])
2038 g(['arb_gpu_shader_fp64-vs-getuniformdv'])
2039 g(['arb_gpu_shader_fp64-fs-getuniformdv'])
2040 g(['arb_gpu_shader_fp64-gs-getuniformdv'])
2041 g(['arb_gpu_shader_fp64-wrong-type-setter'])
2042 g(['arb_gpu_shader_fp64-dlist-uniforms'])
2043 g(['arb_gpu_shader_fp64-double_in_bool_uniform'])
2044 g(['arb_gpu_shader_fp64-uniform-invalid-operation'])
2045 g(['arb_gpu_shader_fp64-vs-non-uniform-control-flow-const'])
2046 g(['arb_gpu_shader_fp64-fs-non-uniform-control-flow-const'])
2047 g(['arb_gpu_shader_fp64-vs-non-uniform-control-flow-ubo'])
2048 g(['arb_gpu_shader_fp64-fs-non-uniform-control-flow-ubo'])
2049 g(['arb_gpu_shader_fp64-vs-non-uniform-control-flow-ssbo'])
2050 g(['arb_gpu_shader_fp64-fs-non-uniform-control-flow-ssbo'])
2051 g(['arb_gpu_shader_fp64-vs-non-uniform-control-flow-alu'])
2052 g(['arb_gpu_shader_fp64-fs-non-uniform-control-flow-alu'])
2053 g(['arb_gpu_shader_fp64-vs-non-uniform-control-flow-packing'])
2054 g(['arb_gpu_shader_fp64-fs-non-uniform-control-flow-packing'])
2056 with profile
.test_list
.group_manager(
2058 grouptools
.join('spec', 'ARB_gpu_shader_fp64', 'shader_storage')) as g
:
2059 g(['arb_gpu_shader_fp64-layout-std140-fp64-shader'], 'layout-std140-fp64-shader')
2060 g(['arb_gpu_shader_fp64-layout-std140-fp64-mixed-shader'], 'layout-std140-fp64-mixed-shader')
2061 g(['arb_gpu_shader_fp64-layout-std430-fp64-shader'], 'layout-std430-fp64-shader')
2062 g(['arb_gpu_shader_fp64-layout-std430-fp64-mixed-shader'], 'layout-std430-fp64-mixed-shader')
2064 with profile
.test_list
.group_manager(
2066 grouptools
.join('spec', 'ARB_shader_subroutine')) as g
:
2067 g(['arb_shader_subroutine-minmax'])
2068 g(['arb_shader_subroutine-uniformsubroutinesuiv'])
2070 with profile
.test_list
.group_manager(
2072 grouptools
.join('spec', 'ARB_occlusion_query')) as g
:
2073 g(['occlusion_query'])
2074 g(['occlusion_query_conform'])
2075 g(['occlusion_query_lifetime'])
2076 g(['occlusion_query_meta_fragments'])
2077 g(['occlusion_query_meta_no_fragments'])
2078 g(['occlusion_query_meta_save'])
2079 g(['occlusion_query_order'])
2080 g(['gen_delete_while_active'])
2082 with profile
.test_list
.group_manager(
2084 grouptools
.join('spec', 'ARB_point_parameters')) as g
:
2085 g(['arb_point_parameters-point-attenuation'])
2087 # Group ARB_separate_shader_objects
2088 with profile
.test_list
.group_manager(
2090 grouptools
.join('spec', 'ARB_separate_shader_objects')) as g
:
2091 g(['arb_separate_shader_object-ActiveShaderProgram-invalid-program'],
2092 'ActiveShaderProgram with invalid program')
2093 g(['arb_separate_shader_object-GetProgramPipelineiv'],
2094 'GetProgramPipelineiv')
2095 g(['arb_separate_shader_object-dlist'], 'Display lists (Compat)')
2096 g(['arb_separate_shader_object-IsProgramPipeline'],
2097 'IsProgramPipeline')
2098 g(['arb_separate_shader_object-UseProgramStages-non-separable'],
2099 'UseProgramStages - non-separable program')
2100 g(['arb_separate_shader_object-ProgramUniform-coverage'],
2101 'ProgramUniform coverage')
2102 g(['arb_separate_shader_object-rendezvous_by_name'],
2103 'Rendezvous by name')
2104 g(['arb_separate_shader_object-rendezvous_by_name_interpolation'],
2105 'Rendezvous by name with multiple interpolation qualifier')
2106 g(['arb_separate_shader_object-mix-and-match-tcs-tes'],
2107 'mix-and-match-tcs-tes'),
2108 g(['arb_separate_shader_object-mixed_explicit_and_non_explicit_locations'],
2109 'Mixed explicit and non-explicit locations')
2110 g(['arb_separate_shader_object-api-errors'], 'misc. API error checks')
2111 g(['arb_separate_shader_object-rendezvous_by_location', '-fbo'],
2112 'Rendezvous by location', run_concurrent
=False)
2113 g(['arb_separate_shader_object-rendezvous_by_location-5-stages'],
2114 'Rendezvous by location (5 stages)')
2115 g(['arb_separate_shader_object-ValidateProgramPipeline'],
2116 'ValidateProgramPipeline')
2117 g(['arb_separate_shader_object-400-combinations', '-fbo', '--by-location'],
2118 '400 combinations by location', run_concurrent
=False)
2119 g(['arb_separate_shader_object-400-combinations', '-fbo'],
2120 '400 combinations by name', run_concurrent
=False)
2121 g(['arb_separate_shader_object-active-sampler-conflict'],
2122 'active sampler conflict')
2123 g(['arb_separate_shader_object-atomic-counter'],
2125 g(['arb_separate_shader_object-compat-builtins'], 'compat-builtins')
2126 g(['arb_separate_shader_object-rendezvous_by_location-3-stages'],
2127 'rendezvous_by_location-3-stages')
2128 g(['arb_separate_shader_object-uniform-namespace'],
2129 'uniform namespace is per-program')
2130 g(['arb_separate_shader_object-xfb-rendezvous_by_location'],
2131 'Transform feedback with rendezvous by location')
2133 # Group ARB_sampler_objects
2134 with profile
.test_list
.group_manager(
2136 grouptools
.join('spec', 'ARB_sampler_objects')) as g
:
2137 g(['arb_sampler_objects-sampler-objects'], 'sampler-objects',)
2138 g(['arb_sampler_objects-sampler-incomplete'], 'sampler-incomplete',)
2139 g(['arb_sampler_objects-srgb-decode'], 'GL_EXT_texture_sRGB_decode',)
2140 g(['arb_sampler_objects-framebufferblit'], 'framebufferblit',
2141 run_concurrent
=False)
2143 # Group ARB_sample_shading
2144 with profile
.test_list
.group_manager(
2146 grouptools
.join('spec', 'ARB_sample_shading')) as g
:
2147 g(['arb_sample_shading-api'], run_concurrent
=False)
2149 for num_samples
in ['0'] + MSAA_SAMPLE_COUNTS
:
2150 g(['arb_sample_shading-builtin-gl-num-samples', num_samples
],
2151 'builtin-gl-num-samples {0}'.format(num_samples
),
2152 run_concurrent
=False)
2153 g(['arb_sample_shading-builtin-gl-sample-id', num_samples
],
2154 'builtin-gl-sample-id {}'.format(num_samples
), run_concurrent
=False)
2155 g(['arb_sample_shading-builtin-gl-sample-mask', num_samples
],
2156 'builtin-gl-sample-mask {}'.format(num_samples
),
2157 run_concurrent
=False)
2158 g(['arb_sample_shading-builtin-gl-sample-position', num_samples
],
2159 'builtin-gl-sample-position {}'.format(num_samples
),
2160 run_concurrent
=False)
2162 for sample_count
in MSAA_SAMPLE_COUNTS
:
2163 g(['arb_sample_shading-interpolate-at-sample-position', sample_count
],
2164 'interpolate-at-sample-position {}'.format(sample_count
))
2165 g(['arb_sample_shading-ignore-centroid-qualifier', sample_count
],
2166 'ignore-centroid-qualifier {}'.format(sample_count
))
2167 g(['arb_sample_shading-samplemask', sample_count
, 'all', 'all'],
2168 'samplemask {}'.format(sample_count
))
2170 for num_samples
in ['0'] + MSAA_SAMPLE_COUNTS
:
2171 g(['arb_sample_shading-builtin-gl-sample-mask-simple',
2173 'builtin-gl-sample-mask-simple {}'.format(num_samples
))
2174 g(['arb_sample_shading-samplemask', num_samples
, 'all', 'all'],
2175 'samplemask {} all'.format(num_samples
))
2177 g(['arb_sample_shading-builtin-gl-sample-mask-mrt-alpha'])
2178 g(['arb_sample_shading-builtin-gl-sample-mask-mrt-alpha-to-coverage-combinations'])
2180 # Group ARB_debug_output
2181 with profile
.test_list
.group_manager(
2183 grouptools
.join('spec', 'ARB_debug_output')) as g
:
2184 g(['arb_debug_output-api_error'], run_concurrent
=False)
2187 with profile
.test_list
.group_manager(
2189 grouptools
.join('spec', 'KHR_debug')) as g
:
2190 g(['khr_debug-object-label_gl'], 'object-label_gl')
2191 g(['khr_debug-object-label_gles2'], 'object-label_gles2')
2192 g(['khr_debug-object-label_gles3'], 'object-label_gles3')
2193 g(['khr_debug-push-pop-group_gl'], 'push-pop-group_gl')
2194 g(['khr_debug-push-pop-group_gles2'], 'push-pop-group_gles2')
2195 g(['khr_debug-push-pop-group_gles3'], 'push-pop-group_gles3')
2197 # Group ARB_occlusion_query2
2198 with profile
.test_list
.group_manager(
2200 grouptools
.join('spec', 'ARB_occlusion_query2')) as g
:
2201 g(['arb_occlusion_query2-api'], 'api')
2202 g(['arb_occlusion_query2-render'], 'render')
2204 # Group EXT_memory_object tests
2205 with profile
.test_list
.group_manager(
2207 grouptools
.join('spec', 'EXT_memory_object')) as g
:
2208 g(['ext_memory_object-api-errors'], 'api-errors')
2210 # Group EXT_memory_object_fd tests
2211 with profile
.test_list
.group_manager(
2213 grouptools
.join('spec', 'EXT_memory_object_fd')) as g
:
2214 g(['ext_memory_object_fd-api-errors'], 'api-errors')
2216 # Group EXT_semaphore tests
2217 with profile
.test_list
.group_manager(
2219 grouptools
.join('spec', 'EXT_semaphore')) as g
:
2220 g(['ext_semaphore-api-errors'], 'api-errors')
2222 # Group EXT_semaphore_fd tests
2223 with profile
.test_list
.group_manager(
2225 grouptools
.join('spec', 'EXT_semaphore_fd')) as g
:
2226 g(['ext_semaphore_fd-api-errors'], 'api-errors')
2228 # Group EXT_texture_format_BGRA8888 tests
2229 with profile
.test_list
.group_manager(
2231 grouptools
.join('spec', 'EXT_texture_format_BGRA8888')) as g
:
2232 g(['ext_texture_format_bgra8888-api-errors'], 'api-errors')
2234 with profile
.test_list
.group_manager(
2236 grouptools
.join('spec', 'ARB_pixel_buffer_object')) as g
:
2237 g(['cubemap', 'pbo'])
2238 g(['cubemap', 'npot', 'pbo'])
2239 g(['fbo-pbo-readpixels-small'], run_concurrent
=False)
2240 g(['pbo-drawpixels'], run_concurrent
=False)
2241 g(['pbo-read-argb8888'], run_concurrent
=False)
2242 g(['pbo-readpixels-small'], run_concurrent
=False)
2243 g(['pbo-teximage'], run_concurrent
=False)
2244 g(['pbo-teximage-tiling'], run_concurrent
=False)
2245 g(['pbo-teximage-tiling-2'], run_concurrent
=False)
2246 g(['texsubimage', 'pbo'])
2247 g(['texsubimage', 'pbo', 'manual', 'GL_TEXTURE_2D', 'GL_RGB8', '6',
2248 '10', '0', '94', '53', '0'])
2249 g(['texsubimage', 'array', 'pbo'])
2250 g(['texsubimage', 'cube_map_array', 'pbo'])
2251 g(['texsubimage-depth-formats', 'pbo'])
2252 g(['texsubimage-unpack', 'pbo'])
2254 # Group ARB_provoking_vertex
2255 with profile
.test_list
.group_manager(
2257 grouptools
.join('spec', 'ARB_provoking_vertex')) as g
:
2258 g(['arb-provoking-vertex-control'], run_concurrent
=False)
2259 g(['arb-provoking-vertex-initial'], run_concurrent
=False)
2260 g(['arb-provoking-vertex-render'], run_concurrent
=False)
2261 g(['arb-provoking-vertex-clipped-geometry-flatshading'], run_concurrent
=False)
2262 g(['arb-quads-follow-provoking-vertex'], run_concurrent
=False)
2263 g(['arb-xfb-before-flatshading'], run_concurrent
=False)
2265 # Group ARB_robustness
2266 with profile
.test_list
.group_manager(
2268 grouptools
.join('spec', 'ARB_robustness')) as g
:
2269 g(['arb_robustness_client-mem-bounds'], run_concurrent
=False)
2271 # Group ARB_shader_texture_lod
2272 with profile
.test_list
.group_manager(
2274 grouptools
.join('spec', 'ARB_shader_texture_lod', 'execution')) as g
:
2275 g(['arb_shader_texture_lod-texgrad'])
2276 g(['arb_shader_texture_lod-texgradcube'])
2277 g(['tex-miplevel-selection', '*Lod', '1D'])
2278 g(['tex-miplevel-selection', '*Lod', '2D'])
2279 g(['tex-miplevel-selection', '*Lod', '3D'])
2280 g(['tex-miplevel-selection', '*Lod', 'Cube'])
2281 g(['tex-miplevel-selection', '*Lod', '1DShadow'])
2282 g(['tex-miplevel-selection', '*Lod', '2DShadow'])
2283 g(['tex-miplevel-selection', '*ProjLod', '1D'])
2284 g(['tex-miplevel-selection', '*ProjLod', '1D_ProjVec4'])
2285 g(['tex-miplevel-selection', '*ProjLod', '2D'])
2286 g(['tex-miplevel-selection', '*ProjLod', '2D_ProjVec4'])
2287 g(['tex-miplevel-selection', '*ProjLod', '3D'])
2288 g(['tex-miplevel-selection', '*ProjLod', '1DShadow'])
2289 g(['tex-miplevel-selection', '*ProjLod', '2DShadow'])
2290 g(['tex-miplevel-selection', '*GradARB', '1D'])
2291 g(['tex-miplevel-selection', '*GradARB', '2D'])
2292 g(['tex-miplevel-selection', '*GradARB', '3D'])
2293 g(['tex-miplevel-selection', '*GradARB', 'Cube'])
2294 g(['tex-miplevel-selection', '*GradARB', '1DShadow'])
2295 g(['tex-miplevel-selection', '*GradARB', '2DShadow'])
2296 g(['tex-miplevel-selection', '*GradARB', '2DRect'])
2297 g(['tex-miplevel-selection', '*GradARB', '2DRectShadow'])
2298 g(['tex-miplevel-selection', '*ProjGradARB', '1D'])
2299 g(['tex-miplevel-selection', '*ProjGradARB', '1D_ProjVec4'])
2300 g(['tex-miplevel-selection', '*ProjGradARB', '2D'])
2301 g(['tex-miplevel-selection', '*ProjGradARB', '2D_ProjVec4'])
2302 g(['tex-miplevel-selection', '*ProjGradARB', '3D'])
2303 g(['tex-miplevel-selection', '*ProjGradARB', '1DShadow'])
2304 g(['tex-miplevel-selection', '*ProjGradARB', '2DShadow'])
2305 g(['tex-miplevel-selection', '*ProjGradARB', '2DRect'])
2306 g(['tex-miplevel-selection', '*ProjGradARB', '2DRect_ProjVec4'])
2307 g(['tex-miplevel-selection', '*ProjGradARB', '2DRectShadow'])
2310 # Group ARB_shader_objects
2311 with profile
.test_list
.group_manager(
2313 grouptools
.join('spec', 'ARB_shader_objects')) as g
:
2314 g(['arb_shader_objects-getuniform'], 'getuniform')
2315 g(['arb_shader_objects-bindattriblocation-scratch-name'],
2316 'bindattriblocation-scratch-name')
2317 g(['arb_shader_objects-getactiveuniform-beginend'],
2318 'getactiveuniform-beginend')
2319 g(['arb_shader_objects-getuniformlocation-array-of-struct-of-array'],
2320 'getuniformlocation-array-of-struct-of-array')
2321 g(['arb_shader_objects-clear-with-deleted'], 'clear-with-deleted')
2322 g(['arb_shader_objects-delete-repeat'], 'delete-repeat')
2324 with profile
.test_list
.group_manager(
2326 grouptools
.join('spec', 'ARB_shading_language_420pack')) as g
:
2327 g(['built-in-constants',
2328 os
.path
.join('spec', 'arb_shading_language_420pack', 'minimum-maximums.txt')],
2329 'built-in constants',
2330 override_class
=BuiltInConstantsTest
)
2331 g(['arb_shading_language_420pack-multiple-layout-qualifiers'],
2332 'multiple layout qualifiers')
2333 g(['arb_shading_language_420pack-active-sampler-conflict'], 'active sampler conflict')
2334 g(['arb_shading_language_420pack-binding-layout'], 'binding layout')
2336 # Group ARB_enhanced_layouts
2337 with profile
.test_list
.group_manager(
2339 grouptools
.join('spec', 'arb_enhanced_layouts')) as g
:
2340 g(['arb_enhanced_layouts-explicit-offset-bufferstorage'],
2341 'explicit-offset-bufferstorage')
2342 g(['arb_enhanced_layouts-gs-stream-location-aliasing'],
2343 'gs-stream-location-aliasing')
2344 for test
in ['vs', 'vs_ifc', 'vs_named_ifc', 'vs_struct', 'vs_double']:
2345 g(['arb_enhanced_layouts-transform-feedback-layout-qualifiers', test
],
2346 'arb_enhanced_layouts-transform-feedback-layout-qualifiers_' + test
,
2347 run_concurrent
=False)
2348 g(['arb_enhanced_layouts-transform-feedback-layout-qualifiers',
2351 'arb_enhanced_layouts-transform-feedback-layout-qualifiers_' +
2353 run_concurrent
=False)
2354 g(['arb_enhanced_layouts-transform-feedback-layout-qualifiers', 'gs'],
2355 'arb_enhanced_layouts-transform-feedback-layout-qualifiers_gs',
2356 run_concurrent
=False)
2357 g(['arb_enhanced_layouts-transform-feedback-layout-qualifiers', 'gs_max'],
2358 'arb_enhanced_layouts-transform-feedback-layout-qualifiers_gs_max',
2359 run_concurrent
=False)
2360 g(['arb_enhanced_layouts-transform-feedback-layout-query-api'],
2361 'arb_enhanced_layouts-transform-feedback-layout-query-api')
2363 # Group ARB_explicit_attrib_location
2364 with profile
.test_list
.group_manager(
2366 grouptools
.join('spec', 'ARB_explicit_attrib_location')) as g
:
2367 g(['glsl-explicit-location-01'], run_concurrent
=False)
2368 g(['glsl-explicit-location-02'], run_concurrent
=False)
2369 g(['glsl-explicit-location-03'], run_concurrent
=False)
2370 g(['glsl-explicit-location-04'], run_concurrent
=False)
2371 g(['glsl-explicit-location-05'], run_concurrent
=False)
2372 for test_type
in ('shader', 'api'):
2373 g(['overlapping-locations-input-attribs', test_type
],
2374 run_concurrent
=False)
2376 with profile
.test_list
.group_manager(
2378 grouptools
.join('spec', 'ARB_program_interface_query')) as g
:
2379 g(['arb_program_interface_query-resource-location'], run_concurrent
=False)
2380 g(['arb_program_interface_query-resource-query'], run_concurrent
=False)
2381 g(['arb_program_interface_query-getprograminterfaceiv'], run_concurrent
=False)
2382 g(['arb_program_interface_query-getprogramresourceindex'], run_concurrent
=False)
2383 g(['arb_program_interface_query-getprogramresourcename'], run_concurrent
=False)
2384 g(['arb_program_interface_query-getprogramresourceiv'], run_concurrent
=False)
2385 g(['arb_program_interface_query-compare-with-shader-subroutine'], run_concurrent
=False)
2387 with profile
.test_list
.group_manager(
2389 grouptools
.join('spec', 'ARB_framebuffer_no_attachments')) as g
:
2390 g(['arb_framebuffer_no_attachments-minmax'])
2391 g(['arb_framebuffer_no_attachments-params'])
2392 g(['arb_framebuffer_no_attachments-atomic'])
2393 g(['arb_framebuffer_no_attachments-query'])
2394 g(['arb_framebuffer_no_attachments-roundup-samples'])
2396 # Group ARB_explicit_uniform_location
2397 with profile
.test_list
.group_manager(
2399 grouptools
.join('spec', 'ARB_explicit_uniform_location')) as g
:
2400 g(['arb_explicit_uniform_location-minmax'], run_concurrent
=False)
2401 g(['arb_explicit_uniform_location-boundaries'], run_concurrent
=False)
2402 g(['arb_explicit_uniform_location-array-elements'], run_concurrent
=False)
2403 g(['arb_explicit_uniform_location-inactive-uniform'], run_concurrent
=False)
2404 g(['arb_explicit_uniform_location-use-of-unused-loc'],
2405 run_concurrent
=False)
2407 with profile
.test_list
.group_manager(
2409 grouptools
.join('spec', 'ARB_texture_buffer_object')) as g
:
2410 g(['arb_texture_buffer_object-bufferstorage'], 'bufferstorage')
2411 g(['arb_texture_buffer_object-data-sync'], 'data-sync')
2412 g(['arb_texture_buffer_object-dlist'], 'dlist')
2413 g(['arb_texture_buffer_object-formats', 'fs', 'core'],
2414 'formats (FS, 3.1 core)')
2415 g(['arb_texture_buffer_object-formats', 'vs', 'core'],
2416 'formats (VS, 3.1 core)')
2417 g(['arb_texture_buffer_object-formats', 'fs', 'arb'], 'formats (FS, ARB)')
2418 g(['arb_texture_buffer_object-formats', 'vs', 'arb'], 'formats (VS, ARB)')
2419 g(['arb_texture_buffer_object-get'], 'get')
2420 g(['arb_texture_buffer_object-fetch-outside-bounds'],
2421 'fetch-outside-bounds')
2422 g(['arb_texture_buffer_object-max-size'], 'max-size')
2423 g(['arb_texture_buffer_object-minmax'], 'minmax')
2424 g(['arb_texture_buffer_object-negative-bad-bo'], 'negative-bad-bo')
2425 g(['arb_texture_buffer_object-negative-bad-format'], 'negative-bad-format')
2426 g(['arb_texture_buffer_object-negative-bad-target'], 'negative-bad-target')
2427 g(['arb_texture_buffer_object-negative-unsupported'],
2428 'negative-unsupported')
2429 g(['arb_texture_buffer_object-subdata-sync'], 'subdata-sync')
2430 g(['arb_texture_buffer_object-unused-name'], 'unused-name')
2431 g(['arb_texture_buffer_object-render-no-bo'], 'render-no-bo')
2432 g(['arb_texture_buffer_object-indexed'], 'indexed')
2434 with profile
.test_list
.group_manager(
2436 grouptools
.join('spec', 'ARB_texture_buffer_range')) as g
:
2437 g(['arb_texture_buffer_range-dlist'], 'dlist')
2438 g(['arb_texture_buffer_range-errors'], 'errors')
2439 g(['arb_texture_buffer_range-ranges'], 'ranges')
2440 g(['arb_texture_buffer_range-ranges-2'], 'ranges-2')
2441 g(['arb_texture_buffer_range-ranges-2', '-compat'], 'ranges-2 compat')
2443 with profile
.test_list
.group_manager(
2445 grouptools
.join('spec', 'ARB_texture_rectangle')) as g
:
2446 g(['1-1-linear-texture'])
2447 g(['texrect-many'], run_concurrent
=False)
2448 g(['getteximage-targets', 'RECT'])
2449 g(['texrect_simple_arb_texrect'], run_concurrent
=False)
2450 g(['arb_texrect-texture-base-level-error'], run_concurrent
=False)
2451 g(['fbo-blit', 'rect'], run_concurrent
=False)
2452 g(['tex-miplevel-selection', 'GL2:texture()', '2DRect'])
2453 g(['tex-miplevel-selection', 'GL2:texture()', '2DRectShadow'])
2454 g(['tex-miplevel-selection', 'GL2:textureProj', '2DRect'])
2455 g(['tex-miplevel-selection', 'GL2:textureProj', '2DRect_ProjVec4'])
2456 g(['tex-miplevel-selection', 'GL2:textureProj', '2DRectShadow'])
2457 add_msaa_visual_plain_tests(g
, ['copyteximage', 'RECT'],
2458 run_concurrent
=False)
2459 add_texwrap_target_tests(g
, 'RECT')
2461 with profile
.test_list
.group_manager(
2462 PiglitGLTest
, grouptools
.join('spec', 'ARB_texture_storage')) as g
:
2463 g(['arb_texture_storage-texture-storage'], 'texture-storage',
2464 run_concurrent
=False)
2465 g(['arb_texture_storage-texture-storage-attach-before'], 'attach-before',
2466 run_concurrent
=False)
2468 with profile
.test_list
.group_manager(
2470 grouptools
.join('spec', 'ARB_texture_storage_multisample')) as g
:
2471 g(['arb_texture_storage_multisample-tex-storage'], 'tex-storage')
2472 g(['arb_texture_storage_multisample-tex-param'], 'tex-param')
2474 with profile
.test_list
.group_manager(
2476 grouptools
.join('spec', 'ARB_texture_view')) as g
:
2477 g(['arb_texture_view-cubemap-view'], 'cubemap-view')
2478 g(['arb_texture_view-texture-immutable-levels'], 'immutable_levels')
2479 g(['arb_texture_view-max-level'], 'max-level')
2480 g(['arb_texture_view-mipgen'], 'mipgen')
2481 g(['arb_texture_view-params'], 'params')
2482 g(['arb_texture_view-formats'], 'formats')
2483 g(['arb_texture_view-targets'], 'targets')
2484 g(['arb_texture_view-queries'], 'queries')
2485 g(['arb_texture_view-rendering-target'], 'rendering-target')
2486 g(['arb_texture_view-rendering-levels'], 'rendering-levels')
2487 g(['arb_texture_view-rendering-layers'], 'rendering-layers')
2488 g(['arb_texture_view-rendering-layers-image'], 'rendering-layers-image')
2489 g(['arb_texture_view-rendering-formats'], 'rendering-formats')
2490 g(['arb_texture_view-rendering-r32ui'], 'rendering-r32ui')
2491 g(['arb_texture_view-lifetime-format'], 'lifetime-format')
2492 g(['arb_texture_view-getteximage-srgb'], 'getteximage-srgb')
2493 g(['arb_texture_view-texsubimage-levels'], 'texsubimage-levels')
2494 g(['arb_texture_view-texsubimage-levels', 'pbo'], 'texsubimage-levels pbo')
2495 g(['arb_texture_view-texsubimage-layers'], 'texsubimage-layers')
2496 g(['arb_texture_view-texsubimage-layers', 'pbo'], 'texsubimage-layers pbo')
2497 g(['arb_texture_view-clear-into-view-2d'], 'clear-into-view-2d')
2498 g(['arb_texture_view-clear-into-view-2d-array'],
2499 'clear-into-view-2d-array')
2500 g(['arb_texture_view-clear-into-view-layered'], 'clear-into-view-layered')
2501 g(['arb_texture_view-copytexsubimage-layers'], 'copytexsubimage-layers')
2502 g(['arb_texture_view-sampling-2d-array-as-cubemap'],
2503 'sampling-2d-array-as-cubemap')
2504 g(['arb_texture_view-sampling-2d-array-as-cubemap-array'],
2505 'sampling-2d-array-as-cubemap-array')
2506 g(['arb_texture_view-sampling-2d-array-as-2d-layer'],
2507 'sampling-2d-array-as-2d-layer')
2509 with profile
.test_list
.group_manager(
2511 grouptools
.join('spec', 'OES_texture_view')) as g
:
2512 g(['arb_texture_view-rendering-formats_gles3'], 'rendering-formats')
2513 g(['arb_texture_view-rendering-layers_gles3'], 'rendering-layers')
2514 g(['arb_texture_view-rendering-levels_gles3'], 'rendering-levels')
2515 g(['arb_texture_view-rendering-target_gles3'], 'rendering-target')
2516 g(['arb_texture_view-sampling-2d-array-as-cubemap_gles3'],
2517 'sampling-2d-array-as-cubemap')
2518 g(['arb_texture_view-sampling-2d-array-as-cubemap-array_gles3'],
2519 'sampling-2d-array-as-cubemap-array')
2520 g(['arb_texture_view-sampling-2d-array-as-2d-layer_gles3'],
2521 'sampling-2d-array-as-2d-layer')
2522 g(['arb_texture_view-texture-immutable-levels_gles3'], 'immutable_levels')
2523 g(['arb_texture_view-formats_gles3'], 'formats')
2524 g(['arb_texture_view-queries_gles3'], 'queries')
2525 g(['arb_texture_view-targets_gles3'], 'targets')
2526 g(['arb_texture_view-clear-into-view-2d_gles3'], 'clear-into-view-2d')
2527 g(['arb_texture_view-clear-into-view-2d-array_gles3'],
2528 'clear-into-view-2d-array')
2529 g(['arb_texture_view-clear-into-view-layered_gles3'],
2530 'clear-into-view-layered')
2531 g(['arb_texture_view-copytexsubimage-layers_gles3'],
2532 'copytexsubimage-layers')
2533 g(['arb_texture_view-texsubimage-levels_gles3'], 'texsubimage-levels')
2534 g(['arb_texture_view-texsubimage-levels_gles3', 'pbo'],
2535 'texsubimage-levels pbo')
2536 g(['arb_texture_view-texsubimage-layers_gles3'], 'texsubimage-layers')
2537 g(['arb_texture_view-texsubimage-layers_gles3', 'pbo'],
2538 'texsubimage-layers pbo')
2540 with profile
.test_list
.group_manager(
2542 grouptools
.join('spec', '3DFX_texture_compression_FXT1')) as g
:
2543 g(['compressedteximage', 'GL_COMPRESSED_RGB_FXT1_3DFX'])
2544 g(['compressedteximage', 'GL_COMPRESSED_RGBA_FXT1_3DFX'])
2545 g(['fxt1-teximage'], run_concurrent
=False)
2546 g(['arb_texture_compression-invalid-formats', 'fxt1'],
2548 g(['fbo-generatemipmap-formats', 'GL_3DFX_texture_compression_FXT1'],
2549 'fbo-generatemipmap-formats')
2551 with profile
.test_list
.group_manager(
2552 PiglitGLTest
, grouptools
.join('spec', 'arb_clip_control')) as g
:
2553 g(['arb_clip_control-clip-control'])
2554 g(['arb_clip_control-depth-precision'])
2555 g(['arb_clip_control-viewport'])
2557 with profile
.test_list
.group_manager(
2558 PiglitGLTest
, grouptools
.join('spec', 'arb_color_buffer_float')) as g
:
2560 def f(name
, format
, p1
=None, p2
=None):
2561 testname
= '{}-{}{}{}'.format(
2563 '-{}'.format(p1
) if p1
else '',
2564 '-{}'.format(p2
) if p2
else '')
2565 cmd
= ['arb_color_buffer_float-{}'.format(name
), format
, p1
, p2
]
2566 g([c
for c
in cmd
if c
is not None], testname
)
2569 f('getteximage', 'GL_RGBA8')
2570 f('queries', 'GL_RGBA8')
2571 f('readpixels', 'GL_RGBA8')
2572 f('probepixel', 'GL_RGBA8')
2573 f('drawpixels', 'GL_RGBA8')
2574 f('clear', 'GL_RGBA8')
2575 f('render', 'GL_RGBA8')
2576 f('render', 'GL_RGBA8', 'fog')
2577 f('render', 'GL_RGBA8', 'sanity')
2578 f('render', 'GL_RGBA8', 'sanity', 'fog')
2579 f('queries', 'GL_RGBA8_SNORM')
2580 f('readpixels', 'GL_RGBA8_SNORM')
2581 f('probepixel', 'GL_RGBA8_SNORM')
2582 f('drawpixels', 'GL_RGBA8_SNORM')
2583 f('getteximage', 'GL_RGBA8_SNORM')
2584 f('clear', 'GL_RGBA8_SNORM')
2585 f('render', 'GL_RGBA8_SNORM')
2586 f('render', 'GL_RGBA8_SNORM', 'fog')
2587 f('render', 'GL_RGBA8_SNORM', 'sanity')
2588 f('render', 'GL_RGBA8_SNORM', 'sanity', 'fog')
2589 f('getteximage', 'GL_RGBA16F')
2590 f('queries', 'GL_RGBA16F')
2591 f('readpixels', 'GL_RGBA16F')
2592 f('probepixel', 'GL_RGBA16F')
2593 f('drawpixels', 'GL_RGBA16F')
2594 f('clear', 'GL_RGBA16F')
2595 f('render', 'GL_RGBA16F')
2596 f('render', 'GL_RGBA16F', 'fog')
2597 f('render', 'GL_RGBA16F', 'sanity')
2598 f('render', 'GL_RGBA16F', 'sanity', 'fog')
2599 f('getteximage', 'GL_RGBA32F')
2600 f('queries', 'GL_RGBA32F')
2601 f('readpixels', 'GL_RGBA32F')
2602 f('probepixel', 'GL_RGBA32F')
2603 f('drawpixels', 'GL_RGBA32F')
2604 f('clear', 'GL_RGBA32F')
2605 f('render', 'GL_RGBA32F')
2606 f('render', 'GL_RGBA32F', 'fog')
2607 f('render', 'GL_RGBA32F', 'sanity')
2608 f('render', 'GL_RGBA32F', 'sanity', 'fog')
2610 with profile
.test_list
.group_manager(
2611 PiglitGLTest
, grouptools
.join('spec', 'arb_depth_texture')) as g
:
2612 g(['depth-level-clamp'], run_concurrent
=False)
2613 g(['depth-tex-modes'], run_concurrent
=False)
2614 g(['texdepth'], run_concurrent
=False)
2615 add_depthstencil_render_miplevels_tests(g
, ('d=z24', 'd=z16'))
2616 add_texwrap_format_tests(g
, 'GL_ARB_depth_texture')
2617 add_fbo_depth_tests(g
, 'GL_DEPTH_COMPONENT16')
2618 add_fbo_depth_tests(g
, 'GL_DEPTH_COMPONENT24')
2619 add_fbo_depth_tests(g
, 'GL_DEPTH_COMPONENT32')
2620 add_fbo_formats_tests(g
, 'GL_ARB_depth_texture')
2622 with profile
.test_list
.group_manager(
2623 PiglitGLTest
, grouptools
.join('spec', 'arb_depth_buffer_float')) as g
:
2624 g(['fbo-clear-formats', 'GL_ARB_depth_buffer_float', 'stencil'],
2625 'fbo-clear-formats stencil')
2626 add_depthstencil_render_miplevels_tests(
2628 ['d=z32f_s8', 'd=z32f', 'd=z32f_s8_s=z24_s8', 'd=z32f_s=z24_s8',
2629 's=z24_s8_d=z32f_s8', 's=z24_s8_d=z32f', 'd=s=z32f_s8', 's=d=z32f_s8',
2631 add_fbo_stencil_tests(g
, 'GL_DEPTH32F_STENCIL8')
2632 add_texwrap_format_tests(g
, 'GL_ARB_depth_buffer_float')
2633 add_fbo_depth_tests(g
, 'GL_DEPTH_COMPONENT32F')
2634 add_fbo_depth_tests(g
, 'GL_DEPTH32F_STENCIL8')
2635 add_fbo_formats_tests(g
, 'GL_ARB_depth_buffer_float')
2636 add_fbo_depthstencil_tests(g
, 'GL_DEPTH32F_STENCIL8', 0)
2638 with profile
.test_list
.group_manager(
2639 PiglitGLTest
, grouptools
.join('spec', 'arb_get_texture_sub_image')) as g
:
2640 g(['arb_get_texture_sub_image-cubemap'])
2641 g(['arb_get_texture_sub_image-errors'])
2642 g(['arb_get_texture_sub_image-get'])
2643 g(['arb_get_texture_sub_image-getcompressed'])
2645 with profile
.test_list
.group_manager(
2647 grouptools
.join('spec', 'ext_texture_env_combine')) as g
:
2648 g(['ext_texture_env_combine-combine'], 'texture-env-combine')
2650 with profile
.test_list
.group_manager(
2652 grouptools
.join('spec', 'arb_texture_env_crossbar')) as g
:
2653 g(['crossbar'], run_concurrent
=False)
2655 with profile
.test_list
.group_manager(
2656 PiglitGLTest
, grouptools
.join('spec', 'arb_texture_compression')) as g
:
2657 g(['arb_texture_compression-internal-format-query'],
2658 'GL_TEXTURE_INTERNAL_FORMAT query')
2659 g(['arb_texture_compression-invalid-formats', 'unknown'],
2661 g(['fbo-generatemipmap-formats', 'GL_ARB_texture_compression'],
2662 'fbo-generatemipmap-formats')
2663 add_texwrap_format_tests(g
, 'GL_ARB_texture_compression')
2665 with profile
.test_list
.group_manager(
2667 grouptools
.join('spec', 'arb_texture_compression_bptc')) as g
:
2668 g(['arb_texture_compression-invalid-formats', 'bptc'], 'invalid formats')
2670 g(['bptc-float-modes'])
2671 g(['compressedteximage', 'GL_COMPRESSED_RGBA_BPTC_UNORM'])
2672 g(['compressedteximage', 'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM'])
2673 g(['compressedteximage', 'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT'])
2674 g(['compressedteximage', 'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT'])
2675 g(['fbo-generatemipmap-formats', 'GL_ARB_texture_compression_bptc-unorm'],
2676 'fbo-generatemipmap-formats unorm')
2677 g(['fbo-generatemipmap-formats', 'GL_ARB_texture_compression_bptc-float'],
2678 'fbo-generatemipmap-formats float')
2679 add_texwrap_format_tests(g
, 'GL_ARB_texture_compression_bptc')
2681 with profile
.test_list
.group_manager(
2683 grouptools
.join('spec', 'ext_texture_compression_bptc')) as g
:
2684 g(['bptc-api_gles2'])
2686 with profile
.test_list
.group_manager(
2688 grouptools
.join('spec', 'ext_vertex_array_bgra')) as g
:
2689 g(['bgra-sec-color-pointer'], run_concurrent
=False)
2690 g(['bgra-vert-attrib-pointer'], run_concurrent
=False)
2692 with profile
.test_list
.group_manager(
2694 grouptools
.join('spec', 'apple_vertex_array_object')) as g
:
2695 g(['vao-01'], run_concurrent
=False)
2696 g(['vao-02'], run_concurrent
=False)
2697 g(['arb_vertex_array-isvertexarray', 'apple'], 'isvertexarray')
2699 with profile
.test_list
.group_manager(
2701 grouptools
.join('spec', 'arb_vertex_array_bgra')) as g
:
2702 g(['arb_vertex_array_bgra-api-errors'], 'api-errors', run_concurrent
=False)
2703 g(['arb_vertex_array_bgra-get'], 'get', run_concurrent
=False)
2705 with profile
.test_list
.group_manager(
2707 grouptools
.join('spec', 'arb_vertex_array_object')) as g
:
2708 g(['vao-element-array-buffer'])
2709 g(['arb_vertex_array-delete-object-0'], 'delete-object-0')
2710 g(['arb_vertex_array-isvertexarray'], 'isvertexarray')
2712 with profile
.test_list
.group_manager(
2714 grouptools
.join('spec', 'arb_vertex_buffer_object')) as g
:
2715 g(['arb_vertex_buffer_object-combined-vertex-index'],
2716 'combined-vertex-index')
2717 g(['arb_vertex_buffer_object-elements-negative-offset'],
2718 'elements-negative-offset')
2719 g(['arb_vertex_buffer_object-mixed-immediate-and-vbo'],
2720 'mixed-immediate-and-vbo')
2721 g(['arb_vertex_buffer_object-delete-mapped-buffer'])
2722 g(['arb_vertex_buffer_object-map-after-draw'])
2723 g(['arb_vertex_buffer_object-map-empty'])
2724 g(['arb_vertex_buffer_object-ib-data-sync'], 'ib-data-sync')
2725 g(['arb_vertex_buffer_object-ib-subdata-sync'], 'ib-subdata-sync')
2727 g(['vbo-bufferdata'])
2728 g(['vbo-map-remap'])
2729 g(['vbo-map-unsync'])
2730 g(['arb_vertex_buffer_object-vbo-subdata-many', 'drawarrays'],
2731 'vbo-subdata-many drawarrays')
2732 g(['arb_vertex_buffer_object-vbo-subdata-many', 'drawelements'],
2733 'vbo-subdata-many drawelements')
2734 g(['arb_vertex_buffer_object-vbo-subdata-many', 'drawrangeelements'],
2735 'vbo-subdata-many drawrangeelements')
2736 g(['vbo-subdata-sync'])
2737 g(['vbo-subdata-zero'])
2739 with profile
.test_list
.group_manager(
2741 grouptools
.join('spec', 'arb_vertex_program')) as g
:
2742 g(['arb_vertex_program-getenv4d-with-error'], 'getenv4d-with-error',
2743 run_concurrent
=False)
2744 g(['arb_vertex_program-getlocal4d-with-error'], 'getlocal4d-with-error',
2745 run_concurrent
=False)
2746 g(['arb_vertex_program-getlocal4f-max'], 'getlocal4f-max')
2747 g(['arb_vertex_program-getlocal4-errors'], 'getlocal4-errors')
2748 g(['clip-plane-transformation', 'arb'],
2749 'clip-plane-transformation arb')
2750 g(['arb_vertex_program-matrix-property-bindings'])
2751 g(['arb_vertex_program-minmax'], 'minmax')
2752 g(['arb_vertex_program-property-bindings'])
2753 g(['arb_vertex_program-get-limits-without-fp'], run_concurrent
=False)
2754 g(['vp-address-01'], run_concurrent
=False)
2755 g(['vp-address-02'], run_concurrent
=False)
2756 g(['vp-address-04'], run_concurrent
=False)
2757 g(['vp-bad-program'], run_concurrent
=False)
2758 g(['vp-max-array'], run_concurrent
=False)
2760 with profile
.test_list
.group_manager(
2762 grouptools
.join('spec', 'arb_viewport_array')) as g
:
2763 g(['arb_viewport_array-viewport-indices'], 'viewport-indices')
2764 g(['arb_viewport_array-depthrange-indices'], 'depthrange-indices')
2765 g(['arb_viewport_array-dlist'], 'display-list')
2766 g(['arb_viewport_array-scissor-check'], 'scissor-check')
2767 g(['arb_viewport_array-scissor-indices'], 'scissor-indices')
2768 g(['arb_viewport_array-bounds'], 'bounds')
2769 g(['arb_viewport_array-queries'], 'queries')
2770 g(['arb_viewport_array-minmax'], 'minmax')
2771 g(['arb_viewport_array-render-viewport'], 'render-viewport')
2772 g(['arb_viewport_array-render-viewport-2'], 'render-viewport-2')
2773 g(['arb_viewport_array-render-depthrange'], 'render-depthrange')
2774 g(['arb_viewport_array-render-scissor'], 'render-scissor')
2775 g(['arb_viewport_array-clear'], 'clear')
2777 with profile
.test_list
.group_manager(
2779 grouptools
.join('spec', 'oes_viewport_array')) as g
:
2780 g(['arb_viewport_array-viewport-indices_gles3'], 'viewport-indices')
2781 g(['arb_viewport_array-depthrange-indices_gles3'], 'depthrange-indices')
2782 g(['arb_viewport_array-scissor-check_gles3'], 'scissor-check')
2783 g(['arb_viewport_array-scissor-indices_gles3'], 'scissor-indices')
2784 g(['arb_viewport_array-bounds_gles3'], 'bounds')
2785 g(['arb_viewport_array-queries_gles3'], 'queries')
2786 g(['arb_viewport_array-minmax_gles3'], 'minmax')
2787 g(['arb_viewport_array-render-viewport_gles3'], 'render-viewport')
2788 g(['arb_viewport_array-render-viewport-2_gles3'], 'render-viewport-2')
2789 g(['arb_viewport_array-render-depthrange_gles3'], 'render-depthrange')
2790 g(['arb_viewport_array-render-scissor_gles3'], 'render-scissor')
2791 g(['arb_viewport_array-clear_gles3'], 'clear')
2793 with profile
.test_list
.group_manager(
2795 grouptools
.join('spec', 'nv_vertex_program2_option')) as g
:
2796 g(['vp-address-03'], run_concurrent
=False)
2797 g(['vp-address-05'], run_concurrent
=False)
2798 g(['vp-address-06'], run_concurrent
=False)
2799 g(['vp-clipdistance-01'], run_concurrent
=False)
2800 g(['vp-clipdistance-02'], run_concurrent
=False)
2801 g(['vp-clipdistance-03'], run_concurrent
=False)
2802 g(['vp-clipdistance-04'], run_concurrent
=False)
2804 with profile
.test_list
.group_manager(
2805 PiglitGLTest
, grouptools
.join('spec', 'ext_framebuffer_blit')) as g
:
2806 g(['fbo-blit'], run_concurrent
=False)
2807 g(['fbo-copypix'], run_concurrent
=False)
2808 g(['fbo-readdrawpix'], run_concurrent
=False)
2809 g(['fbo-sys-blit'], run_concurrent
=False)
2810 g(['fbo-sys-sub-blit'], run_concurrent
=False)
2811 g(['fbo-blit-check-limits'], run_concurrent
=False)
2812 g(['fbo-generatemipmap-versus-READ_FRAMEBUFFER'])
2814 with profile
.test_list
.group_manager(
2816 grouptools
.join('spec',
2817 'ext_framebuffer_multisample_blit_scaled')) as g
:
2818 g(['ext_framebuffer_multisample_blit_scaled-negative-blit-scaled'],
2819 'negative-blit-scaled')
2821 for sample_count
in MSAA_SAMPLE_COUNTS
:
2822 g(['ext_framebuffer_multisample_blit_scaled-blit-scaled',
2824 'blit-scaled samples={}'.format(sample_count
))
2826 for sample_count
in MSAA_SAMPLE_COUNTS
:
2827 g(['ext_framebuffer_multisample_blit_scaled-blit-scaled',
2828 sample_count
, 'array'],
2829 'blit-scaled samples={} with GL_TEXTURE_2D_MULTISAMPLE_ARRAY'.format(sample_count
))
2831 with profile
.test_list
.group_manager(
2833 grouptools
.join('spec', 'ext_framebuffer_multisample')) as g
:
2834 g(['ext_framebuffer_multisample-blit-mismatched-samples'],
2835 'blit-mismatched-samples')
2836 g(['ext_framebuffer_multisample-blit-mismatched-sizes'],
2837 'blit-mismatched-sizes')
2838 g(['ext_framebuffer_multisample-blit-mismatched-formats'],
2839 'blit-mismatched-formats')
2840 g(['ext_framebuffer_multisample-dlist'], 'dlist')
2841 g(['ext_framebuffer_multisample-enable-flag'], 'enable-flag')
2842 g(['ext_framebuffer_multisample-minmax'], 'minmax')
2843 g(['ext_framebuffer_multisample-negative-copypixels'],
2844 'negative-copypixels')
2845 g(['ext_framebuffer_multisample-negative-copyteximage'],
2846 'negative-copyteximage')
2847 g(['ext_framebuffer_multisample-negative-max-samples'],
2848 'negative-max-samples')
2849 g(['ext_framebuffer_multisample-negative-mismatched-samples'],
2850 'negative-mismatched-samples')
2851 g(['ext_framebuffer_multisample-negative-readpixels'],
2852 'negative-readpixels')
2853 g(['ext_framebuffer_multisample-renderbufferstorage-samples'],
2854 'renderbufferstorage-samples')
2855 g(['ext_framebuffer_multisample-renderbuffer-samples'],
2856 'renderbuffer-samples')
2857 g(['ext_framebuffer_multisample-samples'], 'samples')
2858 g(['ext_framebuffer_multisample-alpha-blending'], 'alpha-blending')
2859 g(['ext_framebuffer_multisample-alpha-blending', 'slow_cc'],
2860 'alpha-blending slow_cc')
2861 g(['ext_framebuffer_multisample-fast-clear'], 'fast-clear')
2863 for sample_count
in MSAA_SAMPLE_COUNTS
:
2864 g(['ext_framebuffer_multisample-alpha-blending-after-rendering',
2866 'alpha-blending-after-rendering {}'.format(sample_count
))
2868 for num_samples
in ['all_samples'] + MSAA_SAMPLE_COUNTS
:
2869 g(['ext_framebuffer_multisample-formats', num_samples
],
2870 'formats {}'.format(num_samples
))
2872 for test_type
in ('color', 'srgb', 'stencil_draw', 'stencil_resolve',
2873 'depth_draw', 'depth_resolve'):
2874 sensible_options
= ['small', 'depthstencil']
2875 if test_type
in ('color', 'srgb'):
2876 sensible_options
.append('linear')
2877 for options
in power_set(sensible_options
):
2878 g(['ext_framebuffer_multisample-accuracy', num_samples
,
2879 test_type
] + options
,
2880 ' '.join(['accuracy', num_samples
, test_type
] + options
))
2882 # Note: the interpolation tests also check for sensible behaviour with
2883 # non-multisampled framebuffers, so go ahead and test them with
2884 # num_samples==0 as well.
2885 for num_samples
in ['0'] + MSAA_SAMPLE_COUNTS
:
2886 g(['ext_framebuffer_multisample-blit-multiple-render-targets',
2888 'blit-multiple-render-targets {}'.format(num_samples
))
2890 for test_type
in ('non-centroid-disabled', 'centroid-disabled',
2891 'centroid-edges', 'non-centroid-deriv',
2892 'non-centroid-deriv-disabled', 'centroid-deriv',
2893 'centroid-deriv-disabled'):
2894 g(['ext_framebuffer_multisample-interpolation', num_samples
,
2896 'interpolation {} {}'.format(num_samples
, test_type
))
2898 for sample_count
in MSAA_SAMPLE_COUNTS
:
2899 g(['ext_framebuffer_multisample-turn-on-off', sample_count
],
2900 'turn-on-off {}'.format(sample_count
), run_concurrent
=False)
2902 for buffer_type
in ('color', 'depth', 'stencil'):
2903 if buffer_type
== 'color':
2904 sensible_options
= ['linear']
2906 sensible_options
= []
2908 for options
in power_set(sensible_options
):
2909 g(['ext_framebuffer_multisample-upsample', sample_count
,
2910 buffer_type
] + options
,
2911 'upsample {} {}'.format(
2912 sample_count
, ' '.join([buffer_type
] + options
)))
2913 g(['ext_framebuffer_multisample-multisample-blit',
2914 sample_count
, buffer_type
] + options
,
2915 'multisample-blit {}'.format(
2916 ' '.join([sample_count
, buffer_type
] + options
)))
2918 for blit_type
in ('msaa', 'upsample', 'downsample'):
2919 g(['ext_framebuffer_multisample-unaligned-blit',
2920 sample_count
, buffer_type
, blit_type
],
2921 'unaligned-blit {} {} {}'.format(
2922 sample_count
, buffer_type
, blit_type
))
2924 for test_mode
in ('inverted', 'non-inverted'):
2925 g(['ext_framebuffer_multisample-sample-coverage', sample_count
,
2927 'sample-coverage {} {}'.format(sample_count
, test_mode
))
2929 for buffer_type
in ('color', 'depth'):
2930 g(['ext_framebuffer_multisample-sample-alpha-to-coverage',
2931 sample_count
, buffer_type
],
2932 'sample-alpha-to-coverage {} {}'.format(
2933 sample_count
, buffer_type
))
2935 for test
in ['line-smooth', 'point-smooth', 'polygon-smooth',
2936 'sample-alpha-to-one',
2937 'draw-buffers-alpha-to-one',
2938 'draw-buffers-alpha-to-coverage',
2939 'alpha-to-coverage-dual-src-blend',
2940 'alpha-to-coverage-no-draw-buffer-zero',
2941 'alpha-to-coverage-no-draw-buffer-zero-write',
2942 'alpha-to-one-dual-src-blend',
2943 'int-draw-buffers-alpha-to-one',
2944 'int-draw-buffers-alpha-to-coverage',
2945 'alpha-to-one-msaa-disabled',
2946 'alpha-to-one-single-sample-buffer',
2947 'bitmap', 'polygon-stipple']:
2948 g(['ext_framebuffer_multisample-{}'.format(test
),
2950 '{} {}'.format(test
, sample_count
))
2952 for blit_type
in ('msaa', 'upsample', 'downsample', 'normal'):
2953 g(['ext_framebuffer_multisample-clip-and-scissor-blit',
2954 sample_count
, blit_type
],
2955 'clip-and-scissor-blit {} {}'.format(sample_count
, blit_type
))
2957 for flip_direction
in ('x', 'y'):
2958 g(['ext_framebuffer_multisample-blit-flipped', sample_count
,
2960 'blit-flipped {} {}'.format(sample_count
, flip_direction
))
2962 for buffer_type
in ('color', 'depth', 'stencil'):
2963 g(['ext_framebuffer_multisample-clear', sample_count
, buffer_type
],
2964 'clear {} {}'.format(sample_count
, buffer_type
))
2966 for test_type
in ('depth', 'depth-computed', 'stencil'):
2967 for buffer_config
in ('combined', 'separate', 'single'):
2968 g(['ext_framebuffer_multisample-no-color', sample_count
,
2969 test_type
, buffer_config
],
2970 'no-color {} {} {}'.format(
2971 sample_count
, test_type
, buffer_config
))
2973 with profile
.test_list
.group_manager(
2975 grouptools
.join('spec', 'amd_framebuffer_multisample_advanced')) as g
:
2976 g(['amd_framebuffer_multisample_advanced-api'], 'api-glcore')
2977 g(['amd_framebuffer_multisample_advanced-api-gles'], 'api-gles3')
2979 with profile
.test_list
.group_manager(
2981 grouptools
.join('spec', 'ext_framebuffer_object')) as g
:
2982 g(['fbo-generatemipmap-noimage'])
2985 g(['fbo-alphatest-formats'])
2986 g(['fbo-alphatest-nocolor'])
2987 g(['fbo-alphatest-nocolor-ff'])
2988 g(['fbo-blending-formats'])
2989 g(['fbo-blending-format-quirks'])
2990 g(['fbo-blending-snorm'])
2991 g(['fbo-bind-renderbuffer'])
2992 g(['fbo-clearmipmap'])
2993 g(['fbo-clear-formats'])
2994 g(['fbo-colormask-formats'])
2995 g(['fbo-copyteximage'])
2996 g(['fbo-copyteximage-simple'])
2999 g(['fbo-depth-sample-compare'])
3000 g(['fbo-drawbuffers'])
3001 g(['fbo-drawbuffers', 'masked-clear'])
3002 g(['fbo-drawbuffers-arbfp'])
3003 g(['fbo-drawbuffers-blend-add'])
3004 g(['fbo-drawbuffers-fragcolor'])
3005 g(['fbo-drawbuffers-maxtargets'])
3006 g(['ext_framebuffer_object-error-handling'])
3007 g(['fbo-finish-deleted'])
3009 g(['fbo-flushing-2'])
3010 g(['fbo-fragcoord'])
3011 g(['fbo-fragcoord2'])
3012 g(['fbo-generatemipmap'])
3013 g(['fbo-generatemipmap-filtering'])
3014 g(['fbo-generatemipmap-formats'])
3015 g(['fbo-generatemipmap-scissor'])
3016 g(['fbo-generatemipmap-swizzle'])
3017 g(['fbo-generatemipmap-nonsquare'])
3018 g(['fbo-generatemipmap-npot'])
3019 g(['fbo-generatemipmap-viewport'])
3021 g(['ext_framebuffer_object-mipmap'])
3022 g(['fbo-nodepth-test'])
3023 g(['fbo-nostencil-test'])
3024 g(['fbo-readpixels'])
3025 g(['fbo-readpixels-depth-formats'])
3026 g(['fbo-scissor-bitmap'])
3027 g(['fbo-storage-completeness'])
3028 g(['fbo-storage-formats'])
3029 g(['getteximage-formats', 'init-by-rendering'])
3030 g(['getteximage-formats', 'init-by-clear-and-render'])
3031 g(['ext_framebuffer_multisample-fast-clear', 'single-sample'],
3033 g(['ext_framebuffer_object-border-texture-finish'])
3034 add_fbo_stencil_tests(g
, 'GL_STENCIL_INDEX1')
3035 add_fbo_stencil_tests(g
, 'GL_STENCIL_INDEX4')
3036 add_fbo_stencil_tests(g
, 'GL_STENCIL_INDEX8')
3037 add_fbo_stencil_tests(g
, 'GL_STENCIL_INDEX16')
3040 with profile
.test_list
.group_manager(
3042 grouptools
.join('spec', 'ext_gpu_shader4')) as g
:
3043 g(['gl-3.1-mixed-int-float-fbo', 'ext_gpu_shader4'], 'bindfragdatalocation mixed-int-float-fbo')
3044 g(['gl-3.1-mixed-int-float-fbo', 'ext_gpu_shader4', 'int_second'], 'bindfragdatalocation mixed-int-float-fbo int_second')
3046 with profile
.test_list
.group_manager(
3047 PiglitGLTest
, grouptools
.join('spec', 'ext_image_dma_buf_import')) as \
3049 g(['ext_image_dma_buf_import-invalid_hints'], run_concurrent
=False)
3050 g(['ext_image_dma_buf_import-invalid_attributes'], run_concurrent
=False)
3051 g(['ext_image_dma_buf_import-missing_attributes'], run_concurrent
=False)
3052 g(['ext_image_dma_buf_import-ownership_transfer'], run_concurrent
=False)
3053 g(['ext_image_dma_buf_import-unsupported_format'], run_concurrent
=False)
3054 g(['ext_image_dma_buf_import-intel_external_sampler_only'],
3055 run_concurrent
=False)
3056 g(['ext_image_dma_buf_import-refcount'])
3057 g(['ext_image_dma_buf_import-sample_rgb', '-fmt=AR24'],
3058 'ext_image_dma_buf_import-sample_argb8888', run_concurrent
=False)
3059 g(['ext_image_dma_buf_import-sample_rgb', '-fmt=XR24', '-alpha-one'],
3060 'ext_image_dma_buf_import-sample_xrgb8888', run_concurrent
=False)
3061 g(['ext_image_dma_buf_import-sample_yuv', '-fmt=NV12'],
3062 'ext_image_dma_buf_import-sample_nv12', run_concurrent
=False)
3063 g(['ext_image_dma_buf_import-sample_yuv', '-fmt=YU12'],
3064 'ext_image_dma_buf_import-sample_yuv420', run_concurrent
=False)
3065 g(['ext_image_dma_buf_import-sample_yuv', '-fmt=YV12'],
3066 'ext_image_dma_buf_import-sample_yvu420', run_concurrent
=False)
3067 g(['ext_image_dma_buf_import-sample_yuv', '-fmt=AYUV'],
3068 'ext_image_dma_buf_import-sample_ayuv', run_concurrent
=False)
3069 g(['ext_image_dma_buf_import-sample_yuv', '-fmt=XYUV'],
3070 'ext_image_dma_buf_import-sample_xyuv', run_concurrent
=False)
3071 g(['ext_image_dma_buf_import-sample_yuv', '-fmt=P010'],
3072 'ext_image_dma_buf_import-sample_p010', run_concurrent
=False)
3073 g(['ext_image_dma_buf_import-sample_yuv', '-fmt=P012'],
3074 'ext_image_dma_buf_import-sample_p012', run_concurrent
=False)
3075 g(['ext_image_dma_buf_import-sample_yuv', '-fmt=P016'],
3076 'ext_image_dma_buf_import-sample_p016', run_concurrent
=False)
3077 g(['ext_image_dma_buf_import-sample_yuv', '-fmt=YUYV'],
3078 'ext_image_dma_buf_import-sample_yuyv', run_concurrent
=False)
3079 g(['ext_image_dma_buf_import-sample_yuv', '-fmt=UYVY'],
3080 'ext_image_dma_buf_import-sample_uyvy', run_concurrent
=False)
3081 g(['ext_image_dma_buf_import-transcode-nv12-as-r8-gr88'],
3082 'ext_image_dma_buf_import-transcode-nv12-as-r8-gr88',
3083 run_concurrent
=False)
3084 g(['ext_image_dma_buf_import-export'], run_concurrent
=False)
3086 with profile
.test_list
.group_manager(
3088 grouptools
.join('spec', 'ext_packed_depth_stencil')) as g
:
3089 g(['fbo-blit-d24s8'], run_concurrent
=False)
3090 g(['fbo-clear-formats', 'GL_EXT_packed_depth_stencil', 'stencil'],
3091 'fbo-clear-formats stencil')
3092 g(['ext_packed_depth_stencil-depth-stencil-texture'],
3093 'DEPTH_STENCIL texture')
3094 g(['ext_packed_depth_stencil-errors'], 'errors')
3095 g(['ext_packed_depth_stencil-getteximage'], 'getteximage')
3096 g(['ext_packed_depth_stencil-readdrawpixels'], 'readdrawpixels')
3097 g(['ext_packed_depth_stencil-texsubimage'], 'texsubimage')
3098 g(['ext_packed_depth_stencil-readpixels-24_8'], 'readpixels-24_8',
3099 run_concurrent
=False)
3100 add_depthstencil_render_miplevels_tests(
3102 ['s=z24_s8', 'd=z24_s8', 'd=z24_s8_s=z24_s8', 'd=z24_s=z24_s8',
3103 's=z24_s8_d=z24_s8', 's=z24_s8_d=z24', 'd=s=z24_s8', 's=d=z24_s8',
3105 add_fbo_stencil_tests(g
, 'GL_DEPTH24_STENCIL8')
3106 add_texwrap_format_tests(g
, 'GL_EXT_packed_depth_stencil')
3107 add_fbo_depth_tests(g
, 'GL_DEPTH24_STENCIL8')
3108 add_fbo_formats_tests(g
, 'GL_EXT_packed_depth_stencil')
3109 add_fbo_depthstencil_tests(g
, 'GL_DEPTH24_STENCIL8', 0)
3111 with profile
.test_list
.group_manager(
3113 grouptools
.join('spec', 'oes_packed_depth_stencil')) as g
:
3114 g(['oes_packed_depth_stencil-depth-stencil-texture_gles2'],
3115 'DEPTH_STENCIL texture GLES2')
3116 g(['oes_packed_depth_stencil-depth-stencil-texture_gles1'],
3117 'DEPTH_STENCIL texture GLES1')
3119 with profile
.test_list
.group_manager(
3121 grouptools
.join('spec', 'oes_required_internalformat')) as g
:
3122 g(['oes_required_internalformat-renderbuffer'], 'renderbuffer')
3124 with profile
.test_list
.group_manager(
3126 grouptools
.join('spec', 'ext_occlusion_query_boolean')) as g
:
3127 g(['ext_occlusion_query_boolean-any-samples'], 'any-samples')
3129 with profile
.test_list
.group_manager(
3131 grouptools
.join('spec', 'ext_disjoint_timer_query')) as g
:
3132 g(['ext_disjoint_timer_query-simple'], 'simple')
3134 with profile
.test_list
.group_manager(
3136 grouptools
.join('spec', 'ext_texture_norm16')) as g
:
3137 g(['ext_texture_norm16-render'], 'render')
3139 with profile
.test_list
.group_manager(
3141 grouptools
.join('spec', 'ext_render_snorm')) as g
:
3142 g(['ext_render_snorm-render'], 'render')
3144 with profile
.test_list
.group_manager(
3146 grouptools
.join('spec', 'ext_frag_depth')) as g
:
3147 g(['fragdepth_gles2'])
3149 with profile
.test_list
.group_manager(
3151 grouptools
.join('spec', 'ext_texture_array')) as g
:
3152 g(['fbo-generatemipmap-array'])
3153 g(['fbo-generatemipmap-array', 'RGB9_E5'])
3154 g(['fbo-generatemipmap-array', 'S3TC_DXT1'])
3155 g(['ext_texture_array-maxlayers'], 'maxlayers')
3156 g(['ext_texture_array-gen-mipmap'], 'gen-mipmap')
3157 g(['fbo-array'], run_concurrent
=False)
3158 g(['array-texture'], run_concurrent
=False)
3159 g(['ext_texture_array-errors'])
3160 g(['getteximage-targets', '1D_ARRAY'])
3161 g(['getteximage-targets', '2D_ARRAY'])
3162 g(['texsubimage', 'array'])
3163 add_msaa_visual_plain_tests(g
, ['copyteximage', '1D_ARRAY'],
3164 run_concurrent
=False)
3165 add_msaa_visual_plain_tests(g
, ['copyteximage', '2D_ARRAY'],
3166 run_concurrent
=False)
3167 for test
in ('depth-clear', 'depth-layered-clear', 'depth-draw',
3168 'fs-writes-depth', 'stencil-clear', 'stencil-layered-clear',
3169 'stencil-draw', 'fs-writes-stencil'):
3170 g(['fbo-depth-array', test
])
3171 for test_mode
in ['teximage', 'texsubimage']:
3172 g(['ext_texture_array-compressed', test_mode
, '-fbo'],
3173 'compressed {0}'.format(test_mode
),
3174 run_concurrent
=False)
3175 g(['ext_texture_array-compressed', test_mode
, 'pbo', '-fbo'],
3176 'compressed {0} pbo'.format(test_mode
),
3177 run_concurrent
=False)
3179 with profile
.test_list
.group_manager(
3181 grouptools
.join('spec', 'arb_texture_cube_map')) as g
:
3182 g(['arb_texture_cube_map-unusual-order'], run_concurrent
=False)
3183 g(['cubemap'], run_concurrent
=False)
3184 g(['cubemap-getteximage-pbo'])
3185 g(['cubemap-mismatch'], run_concurrent
=False)
3186 g(['cubemap', 'npot'], 'cubemap npot', run_concurrent
=False)
3187 g(['cubemap-shader'], run_concurrent
=False)
3188 g(['cubemap-shader', 'lod'], 'cubemap-shader lod', run_concurrent
=False)
3189 g(['cubemap-shader', 'bias'], 'cubemap-shader bias', run_concurrent
=False)
3190 g(['getteximage-targets', 'CUBE'])
3191 add_msaa_visual_plain_tests(g
, ['copyteximage', 'CUBE'],
3192 run_concurrent
=False)
3194 with profile
.test_list
.group_manager(
3196 grouptools
.join('spec', 'arb_texture_cube_map_array')) as g
:
3197 g(['arb_texture_cube_map_array-get'], run_concurrent
=False)
3198 g(['arb_texture_cube_map_array-teximage3d-invalid-values'],
3199 run_concurrent
=False)
3200 g(['arb_texture_cube_map_array-cubemap'], run_concurrent
=False)
3201 g(['arb_texture_cube_map_array-cubemap-lod'], run_concurrent
=False)
3202 g(['arb_texture_cube_map_array-fbo-cubemap-array'], run_concurrent
=False)
3203 g(['arb_texture_cube_map_array-sampler-cube-array-shadow'],
3204 run_concurrent
=False)
3205 g(['getteximage-targets', 'CUBE_ARRAY'])
3206 g(['glsl-resource-not-bound', 'CubeArray'])
3207 g(['fbo-generatemipmap-cubemap', 'array'])
3208 g(['fbo-generatemipmap-cubemap', 'array', 'RGB9_E5'])
3209 g(['fbo-generatemipmap-cubemap', 'array', 'S3TC_DXT1'])
3210 g(['texsubimage', 'cube_map_array'])
3212 for stage
in ['vs', 'gs', 'fs', 'tes']:
3214 for sampler
in['samplerCubeArray', 'isamplerCubeArray',
3215 'usamplerCubeArray', 'samplerCubeArrayShadow']:
3216 g(['textureSize', stage
, sampler
],
3217 grouptools
.join('textureSize', '{}-textureSize-{}'.format(
3220 with profile
.test_list
.group_manager(
3222 grouptools
.join('spec', 'ext_texture_swizzle')) as g
:
3223 g(['ext_texture_swizzle-api'])
3224 g(['ext_texture_swizzle-swizzle'])
3225 g(['depth_texture_mode_and_swizzle'], 'depth_texture_mode_and_swizzle')
3227 with profile
.test_list
.group_manager(
3229 grouptools
.join('spec', 'ext_texture_compression_latc')) as g
:
3230 g(['arb_texture_compression-invalid-formats', 'latc'], 'invalid formats')
3231 g(['fbo-generatemipmap-formats', 'GL_EXT_texture_compression_latc'],
3232 'fbo-generatemipmap-formats')
3233 g(['fbo-generatemipmap-formats', 'GL_EXT_texture_compression_latc-signed'],
3234 'fbo-generatemipmap-formats-signed')
3235 add_texwrap_format_tests(g
, 'GL_EXT_texture_compression_latc')
3237 with profile
.test_list
.group_manager(
3239 grouptools
.join('spec', 'ext_texture_compression_rgtc')) as g
:
3240 g(['compressedteximage', 'GL_COMPRESSED_RED_RGTC1_EXT'])
3241 g(['compressedteximage', 'GL_COMPRESSED_RED_GREEN_RGTC2_EXT'])
3242 g(['compressedteximage', 'GL_COMPRESSED_SIGNED_RED_RGTC1_EXT'])
3243 g(['compressedteximage', 'GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT'])
3244 g(['arb_texture_compression-invalid-formats', 'rgtc'], 'invalid formats')
3245 g(['rgtc-teximage-01'], run_concurrent
=False)
3246 g(['rgtc-teximage-02'], run_concurrent
=False)
3247 g(['fbo-generatemipmap-formats', 'GL_EXT_texture_compression_rgtc'],
3248 'fbo-generatemipmap-formats')
3249 g(['fbo-generatemipmap-formats', 'GL_EXT_texture_compression_rgtc-signed'],
3250 'fbo-generatemipmap-formats-signed')
3251 add_texwrap_format_tests(g
, 'GL_EXT_texture_compression_rgtc')
3252 g(['rgtc-api_gles2'])
3254 with profile
.test_list
.group_manager(
3256 grouptools
.join('spec', 'ext_texture_compression_s3tc')) as g
:
3257 g(['compressedteximage', 'GL_COMPRESSED_RGB_S3TC_DXT1_EXT'])
3258 g(['compressedteximage', 'GL_COMPRESSED_RGBA_S3TC_DXT1_EXT'])
3259 g(['compressedteximage', 'GL_COMPRESSED_RGBA_S3TC_DXT3_EXT'])
3260 g(['compressedteximage', 'GL_COMPRESSED_RGBA_S3TC_DXT5_EXT'])
3261 g(['arb_texture_compression-invalid-formats', 's3tc'], 'invalid formats')
3262 g(['gen-compressed-teximage'], run_concurrent
=False)
3264 g(['s3tc-errors_gles2'])
3265 g(['s3tc-targeted'])
3266 g(['s3tc-teximage'], run_concurrent
=False)
3267 g(['s3tc-teximage_gles2'], run_concurrent
=False)
3268 g(['s3tc-texsubimage'], run_concurrent
=False)
3269 g(['s3tc-texsubimage_gles2'], run_concurrent
=False)
3270 g(['getteximage-targets', '2D', 'S3TC'])
3271 g(['getteximage-targets', '2D_ARRAY', 'S3TC'])
3272 g(['getteximage-targets', 'CUBE', 'S3TC'])
3273 g(['getteximage-targets', 'CUBE_ARRAY', 'S3TC'])
3274 g(['compressedteximage', 'GL_COMPRESSED_SRGB_S3TC_DXT1_EXT'])
3275 g(['compressedteximage', 'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT'])
3276 g(['compressedteximage', 'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT'])
3277 g(['compressedteximage', 'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT'])
3278 g(['fbo-generatemipmap-formats', 'GL_EXT_texture_compression_s3tc'],
3279 'fbo-generatemipmap-formats')
3280 add_texwrap_format_tests(g
, 'GL_EXT_texture_compression_s3tc')
3282 with profile
.test_list
.group_manager(
3284 grouptools
.join('spec', 'ati_texture_compression_3dc')) as g
:
3285 g(['arb_texture_compression-invalid-formats', '3dc'], 'invalid formats')
3286 g(['fbo-generatemipmap-formats', 'GL_ATI_texture_compression_3dc'],
3287 'fbo-generatemipmap-formats')
3288 add_texwrap_format_tests(g
, 'GL_ATI_texture_compression_3dc')
3290 with profile
.test_list
.group_manager(
3292 grouptools
.join('spec', 'ext_packed_float')) as g
:
3293 g(['ext_packed_float-pack'], 'pack')
3294 g(['query-rgba-signed-components'], 'query-rgba-signed-components')
3295 g(['getteximage-invalid-format-for-packed-type'],
3296 'getteximage-invalid-format-for-packed-type')
3297 add_msaa_formats_tests(g
, 'GL_EXT_packed_float')
3298 add_texwrap_format_tests(g
, 'GL_EXT_packed_float')
3299 add_fbo_formats_tests(g
, 'GL_EXT_packed_float')
3301 with profile
.test_list
.group_manager(
3303 grouptools
.join('spec', 'arb_texture_float')) as g
:
3304 g(['arb_texture_float-texture-float-formats'], run_concurrent
=False)
3305 g(['arb_texture_float-get-tex3d'], run_concurrent
=False)
3306 add_msaa_formats_tests(g
, 'GL_ARB_texture_float')
3307 add_texwrap_format_tests(g
, 'GL_ARB_texture_float')
3308 add_fbo_formats_tests(g
, 'GL_ARB_texture_float')
3310 with profile
.test_list
.group_manager(
3312 grouptools
.join('spec', 'oes_texture_float')) as g
:
3313 g(['oes_texture_float'])
3314 g(['oes_texture_float', 'half'])
3315 g(['oes_texture_float', 'linear'])
3316 g(['oes_texture_float', 'half', 'linear'])
3319 with profile
.test_list
.group_manager(
3321 grouptools
.join('spec', 'ext_texture_integer')) as g
:
3322 g(['ext_texture_integer-api-drawpixels'], 'api-drawpixels')
3323 g(['ext_texture_integer-api-teximage'], 'api-teximage')
3324 g(['ext_texture_integer-api-readpixels'], 'api-readpixels')
3325 g(['ext_texture_integer-fbo-blending'], 'fbo-blending')
3326 g(['ext_texture_integer-fbo-blending', 'GL_ARB_texture_rg'],
3327 'fbo-blending GL_ARB_texture_rg')
3328 g(['ext_texture_integer-fbo_integer_precision_clear'],
3329 'fbo_integer_precision_clear', run_concurrent
=False)
3330 g(['ext_texture_integer-fbo_integer_readpixels_sint_uint'],
3331 'fbo_integer_readpixels_sint_uint', run_concurrent
=False)
3332 g(['ext_texture_integer-getteximage-clamping'], 'getteximage-clamping')
3333 g(['ext_texture_integer-getteximage-clamping', 'GL_ARB_texture_rg'],
3334 'getteximage-clamping GL_ARB_texture_rg')
3335 g(['ext_texture_integer-texformats']),
3336 g(['ext_texture_integer-texture_integer_glsl130'],
3337 'texture_integer_glsl130')
3338 g(['fbo-integer'], run_concurrent
=False)
3339 # TODO: unsupported for int yet
3340 # g(['fbo-clear-formats', 'GL_EXT_texture_integer'], 'fbo-clear-formats')
3341 add_msaa_formats_tests(g
, 'GL_EXT_texture_integer')
3342 add_texwrap_format_tests(g
, 'GL_EXT_texture_integer')
3344 with profile
.test_list
.group_manager(
3346 grouptools
.join('spec', 'arb_texture_rg')) as g
:
3347 g(['depth-tex-modes-rg'], run_concurrent
=False)
3348 g(['rg-draw-pixels'], run_concurrent
=False)
3349 g(['rg-teximage-01'], run_concurrent
=False)
3350 g(['rg-teximage-02'], run_concurrent
=False)
3351 g(['texture-rg'], run_concurrent
=False)
3352 # TODO: unsupported for int yet
3353 # g(['fbo-clear-formats', 'GL_ARB_texture_rg-int'],
3354 # 'fbo-clear-formats-int')
3355 add_msaa_formats_tests(g
, 'GL_ARB_texture_rg')
3356 add_msaa_formats_tests(g
, 'GL_ARB_texture_rg-int')
3357 add_msaa_formats_tests(g
, 'GL_ARB_texture_rg-float')
3358 add_texwrap_format_tests(g
, 'GL_ARB_texture_rg')
3359 add_texwrap_format_tests(g
, 'GL_ARB_texture_rg-float', '-float')
3360 add_texwrap_format_tests(g
, 'GL_ARB_texture_rg-int', '-int')
3362 for format
in ['GL_RED', 'GL_R8', 'GL_R16', 'GL_RG', 'GL_RG8', 'GL_RG16']:
3363 g(['fbo-rg', format
], "fbo-rg-{}".format(format
))
3364 add_fbo_formats_tests(g
, 'GL_ARB_texture_rg')
3365 add_fbo_formats_tests(g
, 'GL_ARB_texture_rg-float', '-float')
3367 with profile
.test_list
.group_manager(
3369 grouptools
.join('spec', 'arb_texture_rgb10_a2ui')) as g
:
3370 g(['ext_texture_integer-fbo-blending', 'GL_ARB_texture_rgb10_a2ui'],
3372 add_texwrap_format_tests(g
, 'GL_ARB_texture_rgb10_a2ui')
3374 with profile
.test_list
.group_manager(
3376 grouptools
.join('spec', 'ext_texture_shared_exponent')) as g
:
3377 g(['fbo-generatemipmap-formats', 'GL_EXT_texture_shared_exponent'],
3378 'fbo-generatemipmap-formats')
3379 add_texwrap_format_tests(g
, 'GL_EXT_texture_shared_exponent')
3381 with profile
.test_list
.group_manager(
3383 grouptools
.join('spec', 'ext_texture_snorm')) as g
:
3384 add_msaa_formats_tests(g
, 'GL_EXT_texture_snorm')
3385 add_texwrap_format_tests(g
, 'GL_EXT_texture_snorm')
3386 add_fbo_formats_tests(g
, 'GL_EXT_texture_snorm')
3388 with profile
.test_list
.group_manager(
3389 PiglitGLTest
, grouptools
.join('spec', 'ext_texture_srgb')) as g
:
3390 g(['fbo-srgb'], run_concurrent
=False)
3391 g(['tex-srgb'], run_concurrent
=False)
3392 g(['arb_texture_compression-invalid-formats', 'srgb'], 'invalid formats')
3393 g(['fbo-generatemipmap-formats', 'GL_EXT_texture_sRGB'],
3394 'fbo-generatemipmap-formats')
3395 g(['fbo-generatemipmap-formats', 'GL_EXT_texture_sRGB-s3tc'],
3396 'fbo-generatemipmap-formats-s3tc')
3397 # TODO: also use GL_ARB_framebuffer_sRGB:
3398 # g(['fbo-blending-formats', 'GL_EXT_texture_sRGB'],
3399 # 'fbo-blending-formats')
3400 g(['fbo-alphatest-formats', 'GL_EXT_texture_sRGB'],
3401 'fbo-alphatest-formats')
3402 g(['ext_framebuffer_multisample-fast-clear',
3403 'GL_EXT_texture_sRGB',
3406 add_msaa_formats_tests(g
, 'GL_EXT_texture_sRGB')
3407 add_texwrap_format_tests(g
, 'GL_EXT_texture_sRGB')
3408 add_texwrap_format_tests(g
, 'GL_EXT_texture_sRGB-s3tc', '-s3tc')
3410 with profile
.test_list
.group_manager(
3411 PiglitGLTest
, grouptools
.join('spec', 'ext_timer_query')) as g
:
3412 g(['ext_timer_query-time-elapsed'], 'time-elapsed', run_concurrent
=False)
3413 g(['timer_query'], run_concurrent
=False)
3415 with profile
.test_list
.group_manager(
3416 PiglitGLTest
, grouptools
.join('spec', 'arb_timer_query')) as g
:
3417 g(['ext_timer_query-time-elapsed', 'timestamp'], 'query GL_TIMESTAMP', run_concurrent
=False)
3418 g(['ext_timer_query-lifetime'], 'query-lifetime')
3419 g(['arb_timer_query-timestamp-get'], 'timestamp-get', run_concurrent
=False)
3421 with profile
.test_list
.group_manager(
3422 PiglitGLTest
, grouptools
.join('spec', 'ext_transform_feedback')) as g
:
3423 for mode
in ['interleaved_ok_base', 'interleaved_ok_range',
3424 'interleaved_ok_offset', 'interleaved_unbound',
3425 'interleaved_no_varyings', 'separate_ok_1',
3426 'separate_unbound_0_1', 'separate_ok_2',
3427 'separate_unbound_0_2', 'separate_unbound_1_2',
3428 'separate_no_varyings', 'no_prog_active', 'begin_active',
3429 'useprog_active', 'link_current_active', 'link_other_active',
3430 'bind_base_active', 'bind_range_active', 'bind_offset_active',
3431 'end_inactive', 'bind_base_max', 'bind_range_max',
3432 'bind_offset_max', 'bind_range_size_m4', 'bind_range_size_0',
3433 'bind_range_size_1', 'bind_range_size_2', 'bind_range_size_3',
3434 'bind_range_size_5', 'bind_range_offset_1',
3435 'bind_range_offset_2', 'bind_range_offset_3',
3436 'bind_range_offset_5', 'bind_offset_offset_1',
3437 'bind_offset_offset_2', 'bind_offset_offset_3',
3438 'bind_offset_offset_5', 'not_a_program',
3439 'useprogstage_noactive', 'useprogstage_active',
3441 g(['ext_transform_feedback-api-errors', mode
],
3442 'api-errors {}'.format(mode
))
3444 for varying
in ['gl_Color', 'gl_SecondaryColor', 'gl_TexCoord',
3445 'gl_FogFragCoord', 'gl_Position', 'gl_PointSize',
3446 'gl_ClipVertex', 'gl_ClipDistance',
3447 'gl_ClipDistance[1]-no-subscript',
3448 'gl_ClipDistance[2]-no-subscript',
3449 'gl_ClipDistance[3]-no-subscript',
3450 'gl_ClipDistance[4]-no-subscript',
3451 'gl_ClipDistance[5]-no-subscript',
3452 'gl_ClipDistance[6]-no-subscript',
3453 'gl_ClipDistance[7]-no-subscript',
3454 'gl_ClipDistance[8]-no-subscript']:
3455 g(['ext_transform_feedback-builtin-varyings', varying
],
3456 'builtin-varyings {}'.format(varying
), run_concurrent
=False)
3458 for mode
in ['main_binding', 'indexed_binding', 'buffer_start',
3460 g(['ext_transform_feedback-get-buffer-state', mode
],
3461 'get-buffer-state {}'.format(mode
))
3463 for mode
in ['output', 'prims_generated', 'prims_written']:
3464 g(['ext_transform_feedback-intervening-read', mode
],
3465 'intervening-read {0}'.format(mode
))
3466 g(['ext_transform_feedback-intervening-read', mode
, 'use_gs'],
3467 'intervening-read {0} use_gs'.format(mode
))
3469 for drawcall
in ['arrays', 'elements']:
3470 for mode
in ['triangles', 'lines', 'points']:
3471 g(['ext_transform_feedback-order', drawcall
, mode
],
3472 'order {0} {1}'.format(drawcall
, mode
))
3474 for draw_mode
in ['points', 'lines', 'line_loop', 'line_strip',
3475 'triangles', 'triangle_strip', 'triangle_fan',
3476 'quads', 'quad_strip', 'polygon']:
3477 for shade_mode
in ['monochrome', 'smooth', 'flat_first', 'flat_last',
3479 if (draw_mode
in ['points', 'lines', 'line_loop', 'line_strip'] and
3480 shade_mode
== 'wireframe'):
3482 g(['ext_transform_feedback-tessellation', draw_mode
, shade_mode
],
3483 'tessellation {0} {1}'.format(draw_mode
, shade_mode
))
3485 for alignment
in [0, 4, 8, 12]:
3486 g(['ext_transform_feedback-alignment', str(alignment
)],
3487 'alignment {0}'.format(alignment
))
3489 for output_type
in ['float', 'vec2', 'vec3', 'vec4', 'mat2', 'mat2x3',
3490 'mat2x4', 'mat3x2', 'mat3', 'mat3x4', 'mat4x2',
3491 'mat4x3', 'mat4', 'int', 'ivec2', 'ivec3', 'ivec4',
3492 'uint', 'uvec2', 'uvec3', 'uvec4']:
3493 for suffix
in ['', '[2]', '[2]-no-subscript']:
3494 g(['ext_transform_feedback-output-type', output_type
, suffix
],
3495 'output-type {0}{1}'.format(output_type
, suffix
))
3497 for mode
in ['discard', 'buffer', 'prims_generated', 'prims_written']:
3498 g(['ext_transform_feedback-generatemipmap', mode
],
3499 'generatemipmap {0}'.format(mode
))
3501 for test_case
in ['base-shrink', 'base-grow', 'offset-shrink',
3502 'offset-grow', 'range-shrink', 'range-grow']:
3503 g(['ext_transform_feedback-change-size', test_case
],
3504 'change-size {0}'.format(test_case
))
3506 for api_suffix
, possible_options
in [('', [[], ['interface']]),
3508 if api_suffix
== '_gles3':
3509 subtest_list
= ['basic-struct']
3511 subtest_list
= ['basic-struct', 'struct-whole-array',
3512 'struct-array-elem', 'array-struct',
3513 'array-struct-whole-array',
3514 'array-struct-array-elem', 'struct-struct',
3515 'array-struct-array-struct']
3516 for subtest
in subtest_list
:
3517 for mode
in ['error', 'get', 'run', 'run-no-fs']:
3518 for options
in possible_options
:
3519 g(['ext_transform_feedback-structs{0}'.format(api_suffix
),
3520 subtest
, mode
] + options
,
3521 'structs{0} {1}'.format(
3522 api_suffix
, ' '.join([subtest
, mode
] + options
)))
3524 g(['ext_transform_feedback-buffer-usage'], 'buffer-usage')
3525 g(['ext_transform_feedback-discard-api'], 'discard-api')
3526 g(['ext_transform_feedback-discard-bitmap'], 'discard-bitmap')
3527 g(['ext_transform_feedback-discard-clear'], 'discard-clear')
3528 g(['ext_transform_feedback-discard-copypixels'], 'discard-copypixels')
3529 g(['ext_transform_feedback-discard-drawarrays'], 'discard-drawarrays')
3530 g(['ext_transform_feedback-discard-drawpixels'], 'discard-drawpixels')
3531 g(['ext_transform_feedback-immediate-reuse'], 'immediate-reuse')
3532 g(['ext_transform_feedback-immediate-reuse-index-buffer'],
3533 'immediate-reuse-index-buffer')
3534 g(['ext_transform_feedback-immediate-reuse-uniform-buffer'],
3535 'immediate-reuse-uniform-buffer')
3536 g(['ext_transform_feedback-max-varyings'], 'max-varyings')
3537 g(['ext_transform_feedback-nonflat-integral'], 'nonflat-integral')
3538 g(['ext_transform_feedback-overflow-edge-cases'], 'overflow-edge-cases')
3539 g(['ext_transform_feedback-overflow-edge-cases', 'use_gs'],
3540 'overflow-edge-cases use_gs')
3541 g(['ext_transform_feedback-points'], 'points')
3542 g(['ext_transform_feedback-points', 'large'], 'points-large')
3543 g(['ext_transform_feedback-position'], 'position-readback-bufferbase')
3544 g(['ext_transform_feedback-position', 'discard'],
3545 'position-readback-bufferbase-discard')
3546 g(['ext_transform_feedback-position', 'offset'],
3547 'position-readback-bufferoffset')
3548 g(['ext_transform_feedback-position', 'offset', 'discard'],
3549 'position-readback-bufferoffset-discard')
3550 g(['ext_transform_feedback-position', 'range'],
3551 'position-readback-bufferrange')
3552 g(['ext_transform_feedback-position', 'range', 'discard'],
3553 'position-readback-bufferrange-discard')
3554 g(['ext_transform_feedback-negative-prims'], 'negative-prims')
3555 g(['ext_transform_feedback-primgen'],
3556 'primgen-query transform-feedback-disabled')
3557 g(['ext_transform_feedback-pipeline-basic-primgen'],
3558 'pipeline-basic-primgen')
3559 g(['ext_transform_feedback-position', 'render'],
3560 'position-render-bufferbase')
3561 g(['ext_transform_feedback-position', 'render', 'discard'],
3562 'position-render-bufferbase-discard')
3563 g(['ext_transform_feedback-position', 'render', 'offset'],
3564 'position-render-bufferoffset')
3565 g(['ext_transform_feedback-position', 'render', 'offset', 'discard'],
3566 'position-render-bufferoffset-discard')
3567 g(['ext_transform_feedback-position', 'render', 'range'],
3568 'position-render-bufferrange')
3569 g(['ext_transform_feedback-position', 'render', 'range', 'discard'],
3570 'position-render-bufferrange-discard')
3571 g(['ext_transform_feedback-position', 'primgen'],
3572 'query-primitives_generated-bufferbase')
3573 g(['ext_transform_feedback-position', 'primgen', 'discard'],
3574 'query-primitives_generated-bufferbase-discard')
3575 g(['ext_transform_feedback-position', 'primgen', 'offset'],
3576 'query-primitives_generated-bufferoffset')
3577 g(['ext_transform_feedback-position', 'primgen', 'offset', 'discard'],
3578 'query-primitives_generated-bufferoffset-discard')
3579 g(['ext_transform_feedback-position', 'primgen', 'range'],
3580 'query-primitives_generated-bufferrange')
3581 g(['ext_transform_feedback-position', 'primgen', 'range', 'discard'],
3582 'query-primitives_generated-bufferrange-discard')
3583 g(['ext_transform_feedback-position', 'primwritten'],
3584 'query-primitives_written-bufferbase')
3585 g(['ext_transform_feedback-position', 'primwritten', 'discard'],
3586 'query-primitives_written-bufferbase-discard')
3587 g(['ext_transform_feedback-position', 'primwritten', 'offset'],
3588 'query-primitives_written-bufferoffset')
3589 g(['ext_transform_feedback-position', 'primwritten', 'offset', 'discard'],
3590 'query-primitives_written-bufferoffset-discard')
3591 g(['ext_transform_feedback-position', 'primwritten', 'range'],
3592 'query-primitives_written-bufferrange')
3593 g(['ext_transform_feedback-position', 'primwritten', 'range', 'discard'],
3594 'query-primitives_written-bufferrange-discard')
3595 g(['ext_transform_feedback-interleaved'], 'interleaved-attribs')
3596 g(['ext_transform_feedback-separate'], 'separate-attribs')
3597 g(['ext_transform_feedback-geometry-shaders-basic'],
3598 'geometry-shaders-basic')
3600 with profile
.test_list
.group_manager(
3601 PiglitGLTest
, grouptools
.join('spec', 'arb_transform_feedback2')) as g
:
3602 g(['arb_transform_feedback2-change-objects-while-paused'],
3603 'Change objects while paused', run_concurrent
=False)
3604 g(['arb_transform_feedback2-change-objects-while-paused_gles3'],
3605 'Change objects while paused (GLES3)', run_concurrent
=False)
3607 with profile
.test_list
.group_manager(
3608 PiglitGLTest
, grouptools
.join('spec', 'ext_transform_feedback2')) as g
:
3609 g(['arb_transform_feedback2-draw-auto'], 'draw-auto', run_concurrent
=False)
3610 g(['arb_transform_feedback2-istransformfeedback'], 'istranformfeedback',
3611 run_concurrent
=False)
3612 g(['arb_transform_feedback2-gen-names-only'],
3613 'glGenTransformFeedbacks names only')
3614 g(['arb_transform_feedback2-cannot-bind-when-active'],
3615 'cannot bind when another object is active')
3616 g(['arb_transform_feedback2-api-queries'], 'misc. API queries')
3617 g(['arb_transform_feedback2-pause-counting'], 'counting with pause')
3619 with profile
.test_list
.group_manager(
3620 PiglitGLTest
, grouptools
.join('spec', 'ext_transform_instanced')) as g
:
3621 g(['arb_transform_feedback2-draw-auto', 'instanced'],
3622 'draw-auto instanced', run_concurrent
=False)
3624 with profile
.test_list
.group_manager(
3625 PiglitGLTest
, grouptools
.join('spec', 'arb_transform_feedback3')) as g
:
3626 g(['arb_transform_feedback3-bind_buffer_invalid_index'],
3627 'arb_transform_feedback3-bind_buffer_invalid_index',
3628 run_concurrent
=False)
3629 g(['arb_transform_feedback3-query_with_invalid_index'],
3630 'arb_transform_feedback3-query_with_invalid_index', run_concurrent
=False)
3631 g(['arb_transform_feedback3-end_query_with_name_zero'],
3632 'arb_transform_feedback3-end_query_with_name_zero', run_concurrent
=False)
3633 g(['arb_transform_feedback3-draw_using_invalid_stream_index'],
3634 'arb_transform_feedback3-draw_using_invalid_stream_index',
3635 run_concurrent
=False)
3636 g(['arb_transform_feedback3-set_varyings_with_invalid_args'],
3637 'arb_transform_feedback3-set_varyings_with_invalid_args',
3638 run_concurrent
=False)
3639 g(['arb_transform_feedback3-set_invalid_varyings'],
3640 'arb_transform_feedback3-set_invalid_varyings', run_concurrent
=False)
3641 g(['arb_transform_feedback3-ext_interleaved_two_bufs', 'vs'],
3642 'arb_transform_feedback3-ext_interleaved_two_bufs_vs',
3643 run_concurrent
=False)
3644 g(['arb_transform_feedback3-ext_interleaved_two_bufs', 'gs'],
3645 'arb_transform_feedback3-ext_interleaved_two_bufs_gs',
3646 run_concurrent
=False)
3647 g(['arb_transform_feedback3-ext_interleaved_two_bufs', 'gs_max'],
3648 'arb_transform_feedback3-ext_interleaved_two_bufs_gs_max',
3649 run_concurrent
=False)
3650 g(['arb_transform_feedback3-begin_end'], run_concurrent
=False)
3652 for param
in ['gl_NextBuffer-1', 'gl_NextBuffer-2', 'gl_SkipComponents1-1',
3653 'gl_SkipComponents1-2', 'gl_SkipComponents1-3',
3654 'gl_SkipComponents2', 'gl_SkipComponents3',
3655 'gl_SkipComponents4',
3656 'gl_NextBuffer-gl_SkipComponents1-gl_NextBuffer',
3657 'gl_NextBuffer-gl_NextBuffer', 'gl_SkipComponents1234', 'gl_SkipComponents1-gl_NextBuffer']:
3658 g(['ext_transform_feedback-output-type', param
], param
)
3660 with profile
.test_list
.group_manager(
3662 grouptools
.join('spec', 'arb_transform_feedback_overflow_query')) as g
:
3663 g(['arb_transform_feedback_overflow_query-basic'])
3664 g(['arb_transform_feedback_overflow_query-errors'])
3666 with profile
.test_list
.group_manager(
3668 grouptools
.join('spec', 'arb_uniform_buffer_object')) as g
:
3669 g(['arb_uniform_buffer_object-bindbuffer-general-point'],
3670 'bindbuffer-general-point')
3671 g(['arb_uniform_buffer_object-buffer-targets'], 'buffer-targets')
3672 g(['arb_uniform_buffer_object-bufferstorage'], 'bufferstorage')
3673 g(['arb_uniform_buffer_object-deletebuffers'], 'deletebuffers')
3674 g(['arb_uniform_buffer_object-dlist'], 'dlist')
3675 g(['arb_uniform_buffer_object-getactiveuniformblockiv-uniform-block-data-size'],
3676 'getactiveuniformblockiv-uniform-block-data-size')
3677 g(['arb_uniform_buffer_object-getactiveuniformblockname'],
3678 'getactiveuniformblockname')
3679 g(['arb_uniform_buffer_object-getactiveuniformname'],
3680 'getactiveuniformname')
3681 g(['arb_uniform_buffer_object-getactiveuniformsiv-uniform-array-stride'],
3682 'getactiveuniformsiv-uniform-array-stride')
3683 g(['arb_uniform_buffer_object-getactiveuniformsiv-uniform-block-index'],
3684 'getactiveuniformsiv-uniform-block-index')
3685 g(['arb_uniform_buffer_object-getactiveuniformsiv-uniform-matrix-stride'],
3686 'getactiveuniformsiv-uniform-matrix-stride')
3687 g(['arb_uniform_buffer_object-getactiveuniformsiv-uniform-type'],
3688 'getactiveuniformsiv-uniform-type')
3689 g(['arb_uniform_buffer_object-getintegeri_v'], 'getintegeri_v')
3690 g(['arb_uniform_buffer_object-getprogramiv'], 'getprogramiv')
3691 g(['arb_uniform_buffer_object-getuniformblockindex'],
3692 'getuniformblockindex')
3693 g(['arb_uniform_buffer_object-getuniformindices'], 'getuniformindices')
3694 g(['arb_uniform_buffer_object-getuniformlocation'], 'getuniformlocation')
3695 g(['arb_uniform_buffer_object-layout-std140-base-size-and-alignment'],
3696 'layout-std140-base-size-and-alignment')
3697 g(['arb_uniform_buffer_object-link-mismatch-blocks'],
3698 'link-mismatch-blocks')
3699 g(['arb_uniform_buffer_object-maxblocks'], 'maxblocks')
3700 g(['arb_uniform_buffer_object-minmax'], 'minmax')
3701 g(['arb_uniform_buffer_object-negative-bindbuffer-index'],
3702 'negative-bindbuffer-index')
3703 g(['arb_uniform_buffer_object-negative-bindbuffer-target'],
3704 'negative-bindbuffer-target')
3705 g(['arb_uniform_buffer_object-negative-bindbufferrange-range'],
3706 'negative-bindbufferrange-range')
3707 g(['arb_uniform_buffer_object-negative-getactiveuniformblockiv'],
3708 'negative-getactiveuniformblockiv')
3709 g(['arb_uniform_buffer_object-negative-getactiveuniformsiv'],
3710 'negative-getactiveuniformsiv')
3711 g(['arb_uniform_buffer_object-referenced-by-shader'],
3712 'referenced-by-shader')
3713 g(['arb_uniform_buffer_object-rendering'], 'rendering')
3714 g(['arb_uniform_buffer_object-rendering', 'offset'], 'rendering-offset')
3715 g(['arb_uniform_buffer_object-rendering-array'], 'rendering-array')
3716 g(['arb_uniform_buffer_object-rendering-array', 'offset'], 'rendering-array-offset')
3717 g(['arb_uniform_buffer_object-rendering-dsa'], 'rendering-dsa')
3718 g(['arb_uniform_buffer_object-rendering-dsa', 'offset'], 'rendering-dsa-offset')
3719 g(['arb_uniform_buffer_object-row-major'], 'row-major')
3720 g(['arb_uniform_buffer_object-uniformblockbinding'], 'uniformblockbinding')
3722 with profile
.test_list
.group_manager(
3724 grouptools
.join('spec', 'arb_uniform_buffer_object',
3725 'maxuniformblocksize')) as g
:
3726 g(['arb_uniform_buffer_object-maxuniformblocksize', 'vs'], 'vs')
3727 g(['arb_uniform_buffer_object-maxuniformblocksize', 'vsexceed'],
3729 g(['arb_uniform_buffer_object-maxuniformblocksize', 'fs'], 'fs')
3730 g(['arb_uniform_buffer_object-maxuniformblocksize', 'fsexceed'],
3733 with profile
.test_list
.group_manager(
3734 PiglitGLTest
, grouptools
.join('spec', 'ati_draw_buffers')) as g
:
3735 g(['ati_draw_buffers-arbfp'])
3736 g(['ati_draw_buffers-arbfp-no-index'], 'arbfp-no-index')
3737 g(['ati_draw_buffers-arbfp-no-option'], 'arbfp-no-option')
3739 with profile
.test_list
.group_manager(
3740 PiglitGLTest
, grouptools
.join('spec', 'ati_envmap_bumpmap')) as g
:
3741 g(['ati_envmap_bumpmap-bump'], run_concurrent
=False)
3743 with profile
.test_list
.group_manager(
3744 PiglitGLTest
, grouptools
.join('spec', 'arb_instanced_arrays')) as g
:
3745 g(['arb_instanced_arrays-vertex-attrib-divisor-index-error'])
3746 g(['arb_instanced_arrays-instanced_arrays'])
3747 g(['arb_instanced_arrays-drawarrays'])
3748 add_single_param_test_set(g
, 'arb_instanced_arrays-instanced_arrays',
3751 with profile
.test_list
.group_manager(
3753 grouptools
.join('spec', 'arb_internalformat_query')) as g
:
3754 g(['arb_internalformat_query-api-errors'], 'misc. API error checks')
3755 g(['arb_internalformat_query-overrun'], 'buffer over-run checks')
3756 g(['arb_internalformat_query-minmax'], 'minmax')
3758 with profile
.test_list
.group_manager(
3760 grouptools
.join('spec', 'arb_internalformat_query2')) as g
:
3761 g(['arb_internalformat_query2-api-errors'], 'API error checks')
3762 g(['arb_internalformat_query2-generic-pname-checks'], 'Individual most generic pname checks')
3763 g(['arb_internalformat_query2-samples-pnames'], 'SAMPLES and NUM_SAMPLE_COUNTS pname checks')
3764 g(['arb_internalformat_query2-internalformat-size-checks'], 'All INTERNALFORMAT_<X>_SIZE pname checks')
3765 g(['arb_internalformat_query2-internalformat-type-checks'], 'All INTERNALFORMAT_<X>_TYPE pname checks')
3766 g(['arb_internalformat_query2-image-format-compatibility-type'], 'IMAGE_FORMAT_COMPATIBILITY_TYPE pname checks')
3767 g(['arb_internalformat_query2-max-dimensions'], 'Max dimensions related pname checks')
3768 g(['arb_internalformat_query2-color-encoding'], 'COLOR_ENCODING pname check')
3769 g(['arb_internalformat_query2-texture-compressed-block'], 'All TEXTURE_COMPRESSED_BLOCK_<X> pname checks')
3770 g(['arb_internalformat_query2-minmax'], 'minmax check for SAMPLES/NUM_SAMPLE_COUNTS')
3771 g(['arb_internalformat_query2-image-texture'], 'Checks for pnames related to ARB_image_load_store that return values from Table 3.22 (OpenGL 4.2)')
3772 g(['arb_internalformat_query2-filter'], 'FILTER pname checks.')
3773 g(['arb_internalformat_query2-format-components'], '{COLOR,DEPTH,STENCIL}_COMPONENTS pname checks')
3775 with profile
.test_list
.group_manager(
3776 PiglitGLTest
, grouptools
.join('spec', 'arb_map_buffer_range')) as g
:
3777 g(['map_buffer_range_error_check'], run_concurrent
=False)
3778 g(['map_buffer_range_test'], run_concurrent
=False)
3779 g(['map_buffer_range-invalidate', 'MAP_INVALIDATE_RANGE_BIT', 'offset=0'],
3780 'MAP_INVALIDATE_RANGE_BIT offset=0')
3781 g(['map_buffer_range-invalidate', 'MAP_INVALIDATE_RANGE_BIT',
3782 'increment-offset'], 'MAP_INVALIDATE_RANGE_BIT increment-offset')
3783 g(['map_buffer_range-invalidate', 'MAP_INVALIDATE_RANGE_BIT',
3784 'decrement-offset'], 'MAP_INVALIDATE_RANGE_BIT decrement-offset')
3785 g(['map_buffer_range-invalidate', 'MAP_INVALIDATE_BUFFER_BIT', 'offset=0'],
3786 'MAP_INVALIDATE_BUFFER_BIT offset=0')
3787 g(['map_buffer_range-invalidate', 'MAP_INVALIDATE_BUFFER_BIT',
3788 'increment-offset'], 'MAP_INVALIDATE_BUFFER_BIT increment-offset')
3789 g(['map_buffer_range-invalidate', 'MAP_INVALIDATE_BUFFER_BIT',
3790 'decrement-offset'], 'MAP_INVALIDATE_BUFFER_BIT decrement-offset')
3791 g(['map_buffer_range-invalidate', 'CopyBufferSubData', 'offset=0'],
3792 'CopyBufferSubData offset=0')
3793 g(['map_buffer_range-invalidate', 'CopyBufferSubData', 'increment-offset'],
3794 'CopyBufferSubData increment-offset')
3795 g(['map_buffer_range-invalidate', 'CopyBufferSubData', 'decrement-offset'],
3796 'CopyBufferSubData decrement-offset')
3798 with profile
.test_list
.group_manager(
3799 PiglitGLTest
, grouptools
.join('spec', 'arb_multisample')) as g
:
3800 g(['arb_multisample-beginend'], 'beginend')
3801 g(['arb_multisample-pushpop'], 'pushpop')
3803 with profile
.test_list
.group_manager(
3804 PiglitGLTest
, grouptools
.join('spec', 'arb_seamless_cube_map')) as g
:
3805 g(['arb_seamless_cubemap'])
3806 g(['arb_seamless_cubemap-initially-disabled'])
3807 g(['arb_seamless_cubemap-three-faces-average'])
3809 with profile
.test_list
.group_manager(
3810 PiglitGLTest
, grouptools
.join('spec', 'AMD_pinned_memory')) as g
:
3811 g(['amd_pinned_memory', 'offset=0'], 'offset=0')
3812 g(['amd_pinned_memory', 'increment-offset'], 'increment-offset')
3813 g(['amd_pinned_memory', 'decrement-offset'], 'decrement-offset')
3814 g(['amd_pinned_memory', 'offset=0', 'map-buffer'], 'map-buffer offset=0')
3815 g(['amd_pinned_memory', 'increment-offset', 'map-buffer'],
3816 'map-buffer increment-offset')
3817 g(['amd_pinned_memory', 'decrement-offset', 'map-buffer'],
3818 'map-buffer decrement-offset')
3820 with profile
.test_list
.group_manager(
3822 grouptools
.join('spec', 'amd_seamless_cubemap_per_texture')) as g
:
3823 g(['amd_seamless_cubemap_per_texture'], run_concurrent
=False)
3825 with profile
.test_list
.group_manager(
3827 grouptools
.join('spec', 'amd_vertex_shader_layer')) as g
:
3828 g(['amd_vertex_shader_layer-layered-2d-texture-render'],
3829 run_concurrent
=False)
3830 g(['amd_vertex_shader_layer-layered-depth-texture-render'],
3831 run_concurrent
=False)
3833 with profile
.test_list
.group_manager(
3835 grouptools
.join('spec', 'amd_vertex_shader_viewport_index')) as g
:
3836 g(['amd_vertex_shader_viewport_index-render'])
3838 with profile
.test_list
.group_manager(
3840 grouptools
.join('spec', 'ext_fog_coord')) as g
:
3841 g(['ext_fog_coord-modes'], run_concurrent
=False)
3843 with profile
.test_list
.group_manager(
3845 grouptools
.join('spec', 'nv_texture_barrier')) as g
:
3846 g(['blending-in-shader'], run_concurrent
=False)
3847 g(['arb_texture_barrier-texture-halves-ping-pong-operation-chain'])
3849 with profile
.test_list
.group_manager(
3851 grouptools
.join('spec', 'nv_texture_env_combine4')) as g
:
3852 g(['nv_texture_env_combine4-combine'])
3854 with profile
.test_list
.group_manager(
3856 grouptools
.join('spec', 'nv_conditional_render')) as g
:
3857 g(['nv_conditional_render-begin-while-active'], 'begin-while-active')
3858 g(['nv_conditional_render-begin-zero'], 'begin-zero')
3859 g(['nv_conditional_render-bitmap'], 'bitmap')
3860 g(['nv_conditional_render-blitframebuffer'], 'blitframebuffer')
3861 g(['nv_conditional_render-clear'], 'clear')
3862 g(['nv_conditional_render-copypixels'], 'copypixels')
3863 g(['nv_conditional_render-copyteximage'], 'copyteximage')
3864 g(['nv_conditional_render-copytexsubimage'], 'copytexsubimage')
3865 g(['nv_conditional_render-dlist'], 'dlist')
3866 g(['nv_conditional_render-drawpixels'], 'drawpixels')
3867 g(['nv_conditional_render-generatemipmap'], 'generatemipmap')
3868 g(['nv_conditional_render-vertex_array'], 'vertex_array')
3870 with profile
.test_list
.group_manager(
3872 grouptools
.join('spec', 'nv_fill_rectangle')) as g
:
3873 g(['nv_fill_rectangle-invalid-draw-mode'], 'invalid-draw-mode')
3875 with profile
.test_list
.group_manager(
3877 grouptools
.join('spec', 'nv_fog_distance')) as g
:
3878 g(['nv_fog_distance-coverage'], 'coverage')
3879 g(['nv_fog_distance-simple-draw', 'radial'], 'simple draw - GL_EYE_RADIAL_NV')
3880 g(['nv_fog_distance-simple-draw', 'eye-plane'], 'simple draw - GL_EYE_PLANE')
3881 g(['nv_fog_distance-simple-draw', 'eye-plane-absolute'], 'simple draw - GL_EYE_PLANE_ABSOLUTE_NV')
3882 g(['nv_fog_distance-fog-coord'], 'GL_FOG_COORDINATE interaction')
3884 with profile
.test_list
.group_manager(
3886 grouptools
.join('spec', 'oes_matrix_get')) as g
:
3887 g(['oes_matrix_get-api'], 'All queries')
3889 with profile
.test_list
.group_manager(
3891 grouptools
.join('spec', 'oes_fixed_point')) as g
:
3892 g(['oes_fixed_point-attribute-arrays'], 'attribute-arrays')
3894 with profile
.test_list
.group_manager(
3896 grouptools
.join('spec', 'arb_clear_buffer_object')) as g
:
3897 g(['arb_clear_buffer_object-formats'])
3898 g(['arb_clear_buffer_object-invalid-internal-format'])
3899 g(['arb_clear_buffer_object-invalid-size'])
3900 g(['arb_clear_buffer_object-mapped'])
3901 g(['arb_clear_buffer_object-no-bound-buffer'])
3902 g(['arb_clear_buffer_object-null-data'])
3903 g(['arb_clear_buffer_object-sub-invalid-size'])
3904 g(['arb_clear_buffer_object-sub-mapped'])
3905 g(['arb_clear_buffer_object-sub-overlap'])
3906 g(['arb_clear_buffer_object-sub-simple'])
3907 g(['arb_clear_buffer_object-unaligned'])
3908 g(['arb_clear_buffer_object-zero-size'])
3910 with profile
.test_list
.group_manager(
3912 grouptools
.join('spec', 'arb_clear_texture')) as g
:
3913 g(['arb_clear_texture-clear-max-level'])
3914 g(['arb_clear_texture-simple'])
3915 g(['arb_clear_texture-error'])
3916 g(['arb_clear_texture-3d'])
3917 g(['arb_clear_texture-cube'])
3918 g(['arb_clear_texture-multisample'])
3919 g(['arb_clear_texture-integer'])
3920 g(['arb_clear_texture-base-formats'])
3921 g(['arb_clear_texture-sized-formats'])
3922 g(['arb_clear_texture-float'])
3923 g(['arb_clear_texture-rg'])
3924 g(['arb_clear_texture-depth-stencil'])
3925 g(['arb_clear_texture-srgb'])
3926 g(['arb_clear_texture-stencil'])
3927 g(['arb_clear_texture-texview'])
3929 with profile
.test_list
.group_manager(
3931 grouptools
.join('spec', 'arb_copy_buffer')) as g
:
3932 g(['copy_buffer_coherency'], run_concurrent
=False)
3933 g(['copybuffersubdata'], run_concurrent
=False)
3934 g(['arb_copy_buffer-data-sync'], 'data-sync')
3935 g(['arb_copy_buffer-dlist'], 'dlist')
3936 g(['arb_copy_buffer-get'], 'get')
3937 g(['arb_copy_buffer-intra-buffer-copy'], 'intra-buffer-copy')
3938 g(['arb_copy_buffer-negative-bound-zero'], 'negative-bound-zero')
3939 g(['arb_copy_buffer-negative-bounds'], 'negative-bounds')
3940 g(['arb_copy_buffer-negative-mapped'], 'negative-mapped')
3941 g(['arb_copy_buffer-overlap'], 'overlap')
3942 g(['arb_copy_buffer-targets'], 'targets')
3943 g(['arb_copy_buffer-subdata-sync'], 'subdata-sync')
3945 with profile
.test_list
.group_manager(
3947 grouptools
.join('spec', 'arb_copy_image')) as g
:
3948 g(['arb_copy_image-simple', '--tex-to-tex'])
3949 g(['arb_copy_image-simple', '--rb-to-tex'])
3950 g(['arb_copy_image-simple', '--rb-to-rb'])
3951 g(['arb_copy_image-srgb-copy'])
3952 g(['arb_copy_image-api_errors'])
3953 g(['arb_copy_image-targets', 'GL_TEXTURE_1D', '32', '1', '1',
3954 'GL_TEXTURE_1D', '32', '1', '1', '11', '0', '0', '5', '0', '0', '14',
3956 g(['arb_copy_image-targets', 'GL_TEXTURE_1D', '32', '1', '1',
3957 'GL_TEXTURE_1D_ARRAY', '32', '1', '12', '11', '0', '0', '5', '0', '9',
3959 g(['arb_copy_image-targets', 'GL_TEXTURE_1D', '32', '1', '1',
3960 'GL_TEXTURE_2D', '32', '32', '1', '11', '0', '0', '5', '13', '0', '14',
3962 g(['arb_copy_image-targets', 'GL_TEXTURE_1D', '32', '1', '1',
3963 'GL_TEXTURE_RECTANGLE', '32', '32', '1', '11', '0', '0', '5', '13',
3964 '0', '14', '1', '1'])
3965 g(['arb_copy_image-targets', 'GL_TEXTURE_1D', '32', '1', '1',
3966 'GL_TEXTURE_2D_ARRAY', '32', '32', '10', '11', '0', '0', '5', '13',
3967 '4', '14', '1', '1'])
3968 g(['arb_copy_image-targets', 'GL_TEXTURE_1D', '32', '1', '1',
3969 'GL_TEXTURE_CUBE_MAP', '32', '32', '6', '11', '0', '0', '5', '13', '4',
3971 g(['arb_copy_image-targets', 'GL_TEXTURE_1D', '32', '1', '1',
3972 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '30', '11', '0', '0', '5',
3973 '13', '8', '14', '1', '1'])
3974 g(['arb_copy_image-targets', 'GL_TEXTURE_1D', '32', '1', '1',
3975 'GL_TEXTURE_3D', '32', '32', '32', '11', '0', '0', '5', '13', '4',
3977 g(['arb_copy_image-targets', 'GL_TEXTURE_1D_ARRAY', '32', '1', '12',
3978 'GL_TEXTURE_1D', '32', '1', '1', '11', '0', '7', '5', '0', '0', '14',
3980 g(['arb_copy_image-targets', 'GL_TEXTURE_1D_ARRAY', '32', '1', '12',
3981 'GL_TEXTURE_1D_ARRAY', '32', '1', '16', '11', '0', '3', '5', '0', '7',
3983 g(['arb_copy_image-targets', 'GL_TEXTURE_1D_ARRAY', '32', '1', '12',
3984 'GL_TEXTURE_2D', '32', '16', '1', '11', '0', '3', '5', '7', '0', '14',
3986 g(['arb_copy_image-targets', 'GL_TEXTURE_1D_ARRAY', '32', '1', '12',
3987 'GL_TEXTURE_RECTANGLE', '32', '16', '1', '11', '0', '3', '5', '7', '0',
3989 g(['arb_copy_image-targets', 'GL_TEXTURE_1D_ARRAY', '32', '1', '12',
3990 'GL_TEXTURE_2D_ARRAY', '32', '16', '18', '11', '0', '3', '5', '9', '7',
3992 g(['arb_copy_image-targets', 'GL_TEXTURE_1D_ARRAY', '32', '1', '12',
3993 'GL_TEXTURE_CUBE_MAP', '32', '32', '6', '11', '0', '3', '5', '17', '2',
3995 g(['arb_copy_image-targets', 'GL_TEXTURE_1D_ARRAY', '32', '1', '12',
3996 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18', '11', '0', '3', '5',
3997 '17', '2', '14', '1', '7'])
3998 g(['arb_copy_image-targets', 'GL_TEXTURE_1D_ARRAY', '32', '1', '12',
3999 'GL_TEXTURE_3D', '32', '16', '18', '11', '0', '3', '5', '9', '2', '14',
4001 g(['arb_copy_image-targets', 'GL_TEXTURE_2D', '32', '32', '1',
4002 'GL_TEXTURE_1D', '32', '1', '1', '11', '23', '0', '5', '0', '0', '14',
4004 g(['arb_copy_image-targets', 'GL_TEXTURE_2D', '32', '32', '1',
4005 'GL_TEXTURE_1D_ARRAY', '32', '1', '16', '11', '2', '0', '5', '0', '7',
4007 g(['arb_copy_image-targets', 'GL_TEXTURE_2D', '32', '32', '1',
4008 'GL_TEXTURE_2D', '32', '16', '1', '11', '12', '0', '5', '7', '0', '14',
4010 g(['arb_copy_image-targets', 'GL_TEXTURE_2D', '32', '32', '1',
4011 'GL_TEXTURE_RECTANGLE', '32', '16', '1', '11', '12', '0', '5', '7',
4012 '0', '14', '9', '1'])
4013 g(['arb_copy_image-targets', 'GL_TEXTURE_2D', '32', '32', '1',
4014 'GL_TEXTURE_2D_ARRAY', '32', '16', '15', '11', '12', '0', '5', '7',
4015 '12', '14', '8', '1'])
4016 g(['arb_copy_image-targets', 'GL_TEXTURE_2D', '32', '32', '1',
4017 'GL_TEXTURE_CUBE_MAP', '32', '32', '6', '11', '5', '0', '5', '9', '2',
4019 g(['arb_copy_image-targets', 'GL_TEXTURE_2D', '32', '32', '1',
4020 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18', '11', '5', '0', '5',
4021 '9', '7', '14', '7', '1'])
4022 g(['arb_copy_image-targets', 'GL_TEXTURE_2D', '32', '32', '1',
4023 'GL_TEXTURE_3D', '32', '16', '18', '11', '5', '0', '5', '9', '7', '14',
4025 g(['arb_copy_image-targets', 'GL_TEXTURE_RECTANGLE', '32', '32', '1',
4026 'GL_TEXTURE_1D', '32', '1', '1', '11', '23', '0', '5', '0', '0', '14',
4028 g(['arb_copy_image-targets', 'GL_TEXTURE_RECTANGLE', '32', '32', '1',
4029 'GL_TEXTURE_1D_ARRAY', '32', '1', '16', '11', '2', '0', '5', '0', '7',
4031 g(['arb_copy_image-targets', 'GL_TEXTURE_RECTANGLE', '32', '32', '1',
4032 'GL_TEXTURE_2D', '32', '16', '1', '11', '12', '0', '5', '7', '0', '14',
4034 g(['arb_copy_image-targets', 'GL_TEXTURE_RECTANGLE', '32', '32', '1',
4035 'GL_TEXTURE_RECTANGLE', '32', '16', '1', '11', '12', '0', '5', '7',
4036 '0', '14', '9', '1'])
4037 g(['arb_copy_image-targets', 'GL_TEXTURE_RECTANGLE', '32', '32', '1',
4038 'GL_TEXTURE_2D_ARRAY', '32', '16', '15', '11', '12', '0', '5', '7',
4039 '12', '14', '8', '1'])
4040 g(['arb_copy_image-targets', 'GL_TEXTURE_RECTANGLE', '32', '32', '1',
4041 'GL_TEXTURE_CUBE_MAP', '32', '32', '6', '11', '5', '0', '5', '9', '2',
4043 g(['arb_copy_image-targets', 'GL_TEXTURE_RECTANGLE', '32', '32', '1',
4044 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18', '11', '5', '0', '5',
4045 '9', '7', '14', '7', '1'])
4046 g(['arb_copy_image-targets', 'GL_TEXTURE_RECTANGLE', '32', '32', '1',
4047 'GL_TEXTURE_3D', '32', '16', '18', '11', '5', '0', '5', '9', '7', '14',
4049 g(['arb_copy_image-targets', 'GL_TEXTURE_2D_ARRAY', '32', '32', '15',
4050 'GL_TEXTURE_1D', '32', '1', '1', '11', '23', '7', '5', '0', '0', '14',
4052 g(['arb_copy_image-targets', 'GL_TEXTURE_2D_ARRAY', '32', '32', '15',
4053 'GL_TEXTURE_1D_ARRAY', '32', '1', '16', '11', '2', '5', '5', '0', '7',
4055 g(['arb_copy_image-targets', 'GL_TEXTURE_2D_ARRAY', '32', '32', '15',
4056 'GL_TEXTURE_2D', '32', '16', '1', '11', '12', '13', '5', '4', '0',
4058 g(['arb_copy_image-targets', 'GL_TEXTURE_2D_ARRAY', '32', '32', '15',
4059 'GL_TEXTURE_RECTANGLE', '32', '16', '1', '11', '12', '13', '5', '7',
4060 '0', '14', '7', '1'])
4061 g(['arb_copy_image-targets', 'GL_TEXTURE_2D_ARRAY', '32', '32', '15',
4062 'GL_TEXTURE_2D_ARRAY', '32', '16', '15', '11', '12', '5', '5', '7',
4063 '2', '14', '9', '9'])
4064 g(['arb_copy_image-targets', 'GL_TEXTURE_2D_ARRAY', '32', '32', '15',
4065 'GL_TEXTURE_CUBE_MAP', '32', '32', '6', '11', '5', '1', '5', '9', '2',
4067 g(['arb_copy_image-targets', 'GL_TEXTURE_2D_ARRAY', '32', '32', '15',
4068 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18', '11', '5', '2', '5',
4069 '9', '7', '14', '7', '11'])
4070 g(['arb_copy_image-targets', 'GL_TEXTURE_2D_ARRAY', '32', '32', '15',
4071 'GL_TEXTURE_3D', '32', '16', '18', '11', '5', '2', '5', '9', '7', '14',
4073 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP', '32', '32', '6',
4074 'GL_TEXTURE_1D', '32', '1', '1', '11', '23', '3', '5', '0', '0', '14',
4076 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP', '32', '32', '6',
4077 'GL_TEXTURE_1D_ARRAY', '32', '1', '16', '11', '2', '3', '5', '0', '7',
4079 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP', '32', '32', '6',
4080 'GL_TEXTURE_2D', '32', '16', '1', '11', '12', '3', '5', '7', '0', '14',
4082 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP', '32', '32', '6',
4083 'GL_TEXTURE_RECTANGLE', '32', '16', '1', '11', '12', '3', '5', '3',
4084 '0', '14', '12', '1'])
4085 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP', '32', '32', '6',
4086 'GL_TEXTURE_2D_ARRAY', '32', '16', '15', '11', '12', '1', '5', '3',
4087 '2', '14', '11', '4'])
4088 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP', '32', '32', '6',
4089 'GL_TEXTURE_CUBE_MAP', '32', '32', '6', '11', '5', '1', '5', '9', '2',
4091 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP', '32', '32', '6',
4092 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18', '11', '5', '1', '5',
4093 '9', '9', '14', '7', '5'])
4094 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP', '32', '32', '6',
4095 'GL_TEXTURE_3D', '32', '16', '18', '11', '5', '0', '5', '9', '7', '14',
4097 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18',
4098 'GL_TEXTURE_1D', '32', '1', '1', '11', '23', '7', '5', '0', '0', '14',
4100 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18',
4101 'GL_TEXTURE_1D_ARRAY', '32', '1', '16', '11', '2', '5', '5', '0', '7',
4103 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18',
4104 'GL_TEXTURE_2D', '32', '16', '1', '11', '12', '13', '5', '7', '0',
4106 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18',
4107 'GL_TEXTURE_RECTANGLE', '32', '16', '1', '11', '12', '13', '5', '7',
4108 '0', '14', '6', '1'])
4109 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18',
4110 'GL_TEXTURE_2D_ARRAY', '32', '16', '15', '11', '12', '5', '5', '1',
4111 '2', '14', '15', '9'])
4112 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18',
4113 'GL_TEXTURE_CUBE_MAP', '16', '16', '6', '11', '5', '1', '5', '9', '2',
4115 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18',
4116 'GL_TEXTURE_CUBE_MAP_ARRAY', '16', '16', '18', '11', '5', '2', '5',
4117 '9', '7', '5', '7', '11'])
4118 g(['arb_copy_image-targets', 'GL_TEXTURE_CUBE_MAP_ARRAY', '32', '32', '18',
4119 'GL_TEXTURE_3D', '32', '16', '18', '11', '5', '2', '5', '9', '7', '14',
4121 g(['arb_copy_image-targets', 'GL_TEXTURE_3D', '32', '32', '17',
4122 'GL_TEXTURE_1D', '32', '1', '1', '11', '23', '7', '5', '0', '0', '14',
4124 g(['arb_copy_image-targets', 'GL_TEXTURE_3D', '32', '32', '17',
4125 'GL_TEXTURE_1D_ARRAY', '32', '1', '16', '11', '2', '5', '5', '0', '7',
4127 g(['arb_copy_image-targets', 'GL_TEXTURE_3D', '32', '32', '17',
4128 'GL_TEXTURE_2D', '32', '16', '1', '11', '12', '13', '5', '7', '0',
4130 g(['arb_copy_image-targets', 'GL_TEXTURE_3D', '32', '32', '17',
4131 'GL_TEXTURE_RECTANGLE', '32', '16', '1', '11', '12', '13', '5', '7',
4132 '0', '14', '9', '1'])
4133 g(['arb_copy_image-targets', 'GL_TEXTURE_3D', '32', '32', '17',
4134 'GL_TEXTURE_2D_ARRAY', '32', '16', '15', '11', '12', '5', '5', '3',
4135 '2', '14', '13', '9'])
4136 g(['arb_copy_image-targets', 'GL_TEXTURE_3D', '32', '32', '17',
4137 'GL_TEXTURE_CUBE_MAP', '16', '16', '6', '11', '5', '1', '5', '9', '2',
4139 g(['arb_copy_image-targets', 'GL_TEXTURE_3D', '32', '32', '17',
4140 'GL_TEXTURE_CUBE_MAP_ARRAY', '16', '16', '18', '11', '5', '2', '5',
4141 '9', '7', '5', '7', '11'])
4142 g(['arb_copy_image-targets', 'GL_TEXTURE_3D', '32', '32', '17',
4143 'GL_TEXTURE_3D', '32', '16', '18', '11', '5', '2', '5', '9', '7', '14',
4145 g(['arb_copy_image-formats'])
4146 g(['arb_copy_image-formats', '--samples=2'])
4147 g(['arb_copy_image-formats', '--samples=4'])
4148 g(['arb_copy_image-formats', '--samples=8'])
4149 g(['arb_copy_image-format-swizzle'])
4150 g(['arb_copy_image-texview'])
4152 with profile
.test_list
.group_manager(
4153 PiglitGLTest
, grouptools
.join('spec', 'arb_cull_distance')) as g
:
4154 g(['arb_cull_distance-max-distances'])
4155 g(['arb_cull_distance-exceed-limits', 'cull'])
4156 g(['arb_cull_distance-exceed-limits', 'clip'])
4157 g(['arb_cull_distance-exceed-limits', 'total'])
4159 with profile
.test_list
.group_manager(
4160 PiglitGLTest
, grouptools
.join('spec', 'arb_half_float_vertex')) as g
:
4161 g(['draw-vertices-half-float'])
4162 g(['draw-vertices-half-float', 'user'], 'draw-vertices-half-float-user')
4164 with profile
.test_list
.group_manager(
4165 PiglitGLTest
, grouptools
.join('spec', 'oes_vertex_half_float')) as g
:
4166 g(['draw-vertices-half-float_gles2'], run_concurrent
=False)
4167 g(['draw-vertices-half-float_gles2', 'user'], 'draw-vertices-half-float-user_gles2',
4168 run_concurrent
=False)
4170 with profile
.test_list
.group_manager(
4172 grouptools
.join('spec', 'arb_vertex_type_2_10_10_10_rev')) as g
:
4173 g(['draw-vertices-2101010'], run_concurrent
=False)
4174 g(['attribs', 'GL_ARB_vertex_type_2_10_10_10_rev'], 'attribs')
4175 g(['arb_vertex_type_2_10_10_10_rev-array_types'])
4176 g(['gl-3.3-vertex-attrib-p-types'], 'attrib-p-types')
4177 g(['gl-3.3-vertex-attrib-p-type-size-match'], 'attrib-p-type-size-match')
4179 with profile
.test_list
.group_manager(
4181 grouptools
.join('spec', 'arb_vertex_type_10f_11f_11f_rev')) as g
:
4182 g(['arb_vertex_type_10f_11f_11f_rev-api-errors'], run_concurrent
=False)
4183 g(['arb_vertex_type_10f_11f_11f_rev-draw-vertices'])
4185 with profile
.test_list
.group_manager(
4187 grouptools
.join('spec', 'arb_draw_buffers')) as g
:
4188 g(['arb_draw_buffers-state_change'])
4189 g(['fbo-mrt-alphatest'])
4190 g(['fbo-mrt-new-bind'])
4192 with profile
.test_list
.group_manager(
4194 grouptools
.join('spec', 'ext_draw_buffers2')) as g
:
4195 g(['fbo-drawbuffers2-blend'])
4196 g(['fbo-drawbuffers2-colormask'])
4197 g(['fbo-drawbuffers2-colormask', 'clear'])
4199 with profile
.test_list
.group_manager(
4201 grouptools
.join('spec', 'arb_draw_buffers_blend')) as g
:
4202 g(['arb_draw_buffers_blend-state_set_get'])
4203 g(['fbo-draw-buffers-blend'])
4205 with profile
.test_list
.group_manager(
4207 grouptools
.join('spec', 'arb_blend_func_extended')) as g
:
4208 g(['arb_blend_func_extended-bindfragdataindexed-invalid-parameters'])
4209 g(['arb_blend_func_extended-blend-api'])
4210 g(['arb_blend_func_extended-error-at-begin'])
4211 g(['arb_blend_func_extended-getfragdataindex'])
4212 g(['arb_blend_func_extended-output-location'])
4213 g(['arb_blend_func_extended-fbo-extended-blend'])
4214 g(['arb_blend_func_extended-fbo-extended-blend-explicit'])
4215 g(['arb_blend_func_extended-fbo-extended-blend-pattern'])
4216 g(['arb_blend_func_extended-dual-src-blending-discard-without-src1'])
4217 g(['arb_blend_func_extended-blend-api_gles2'])
4218 g(['arb_blend_func_extended-builtins_gles2'])
4219 g(['arb_blend_func_extended-bindfragdataindexed-invalid-parameters_gles3'])
4220 g(['arb_blend_func_extended-output-location_gles3'])
4221 g(['arb_blend_func_extended-getfragdataindex_gles3'])
4222 g(['arb_blend_func_extended-fbo-extended-blend-pattern_gles2'])
4223 g(['arb_blend_func_extended-fbo-extended-blend-pattern_gles3'])
4224 g(['arb_blend_func_extended-fbo-extended-blend_gles3'])
4225 g(['arb_blend_func_extended-fbo-extended-blend-explicit_gles3'])
4226 g(['arb_blend_func_extended-dual-src-blending-discard-without-src1_gles3'])
4228 with profile
.test_list
.group_manager(
4230 grouptools
.join('spec', 'arb_base_instance')) as g
:
4231 g(['arb_base_instance-baseinstance-doesnt-affect-gl-instance-id'],
4232 run_concurrent
=False)
4233 g(['arb_base_instance-drawarrays'])
4235 with profile
.test_list
.group_manager(
4237 grouptools
.join('spec', 'ext_base_instance')) as g
:
4238 g(['arb_base_instance-baseinstance-doesnt-affect-gl-instance-id_gles3'],
4239 run_concurrent
=False)
4240 g(['arb_base_instance-drawarrays_gles3'])
4242 with profile
.test_list
.group_manager(
4244 grouptools
.join('spec', 'arb_buffer_storage')) as g
:
4245 for mode
in ['read', 'draw']:
4246 g(['bufferstorage-persistent', mode
])
4247 g(['bufferstorage-persistent', mode
, 'coherent'])
4248 g(['bufferstorage-persistent', mode
, 'client-storage'])
4249 g(['bufferstorage-persistent', mode
, 'coherent', 'client-storage'])
4250 g(['bufferstorage-persistent_gles3', mode
])
4251 g(['bufferstorage-persistent_gles3', mode
, 'coherent'])
4252 g(['bufferstorage-persistent_gles3', mode
, 'client-storage'])
4253 g(['bufferstorage-persistent_gles3', mode
, 'coherent', 'client-storage'])
4255 with profile
.test_list
.group_manager(
4257 grouptools
.join('spec', 'apple_object_purgeable')) as g
:
4258 g(['object_purgeable-api-pbo'], run_concurrent
=False)
4259 g(['object_purgeable-api-texture'], run_concurrent
=False)
4260 g(['object_purgeable-api-vbo'], run_concurrent
=False)
4262 with profile
.test_list
.group_manager(
4264 grouptools
.join('spec', 'mesa_pack_invert')) as g
:
4265 g(['mesa_pack_invert-readpixels'])
4267 with profile
.test_list
.group_manager(
4269 grouptools
.join('spec', 'oes_read_format')) as g
:
4270 g(['oes-read-format'], run_concurrent
=False)
4272 with profile
.test_list
.group_manager(
4274 grouptools
.join('spec', 'nv_primitive_restart')) as g
:
4275 add_single_param_test_set(
4277 'primitive-restart',
4279 "VBO_VERTEX_ONLY", "VBO_INDEX_ONLY",
4280 "VBO_SEPARATE_VERTEX_AND_INDEX", "VBO_COMBINED_VERTEX_AND_INDEX")
4281 add_single_param_test_set(
4283 'primitive-restart-draw-mode',
4284 'points', 'lines', 'line_loop', 'line_strip', 'triangles',
4285 'triangle_strip', 'triangle_fan', 'quads', 'quad_strip', 'polygon')
4287 with profile
.test_list
.group_manager(
4289 grouptools
.join('spec', 'ext_provoking_vertex')) as g
:
4290 g(['provoking-vertex'], run_concurrent
=False)
4292 with profile
.test_list
.group_manager(
4294 grouptools
.join('spec', 'ext_texture_lod_bias')) as g
:
4295 g(['lodbias'], run_concurrent
=False)
4297 with profile
.test_list
.group_manager(
4299 grouptools
.join('spec', 'sgis_generate_mipmap')) as g
:
4300 g(['gen-nonzero-unit'], run_concurrent
=False)
4301 g(['gen-teximage'], run_concurrent
=False)
4302 g(['gen-texsubimage'], run_concurrent
=False)
4304 with profile
.test_list
.group_manager(
4306 grouptools
.join('spec', 'arb_map_buffer_alignment')) as g
:
4307 g(['arb_map_buffer_alignment-sanity_test'], run_concurrent
=False)
4308 g(['arb_map_buffer_alignment-map-invalidate-range'])
4310 with profile
.test_list
.group_manager(
4312 grouptools
.join('spec', 'arb_geometry_shader4')) as g
:
4313 g(['arb_geometry_shader4-program-parameter-input-type'])
4314 g(['arb_geometry_shader4-program-parameter-input-type-draw'])
4315 g(['arb_geometry_shader4-program-parameter-output-type'])
4316 g(['arb_geometry_shader4-vertices-in'])
4318 for draw
in ['', 'indexed']:
4319 for prim
in ['GL_LINES_ADJACENCY', 'GL_LINE_STRIP_ADJACENCY',
4320 'GL_TRIANGLES_ADJACENCY', 'GL_TRIANGLE_STRIP_ADJACENCY']:
4321 g(['arb_geometry_shader4-ignore-adjacent-vertices', draw
, prim
])
4323 for mode
in ['1', 'tf 1', 'max', 'tf max']:
4324 g(['arb_geometry_shader4-program-parameter-vertices-out', mode
])
4326 with profile
.test_list
.group_manager(
4328 grouptools
.join('spec', 'arb_compute_shader')) as g
:
4329 g(['arb_compute_shader-api_errors'], 'api_errors')
4330 g(['arb_compute_shader-minmax'], 'minmax')
4331 g(['built-in-constants',
4332 os
.path
.join('spec', 'arb_compute_shader', 'minimum-maximums.txt')],
4333 'built-in constants',
4334 override_class
=BuiltInConstantsTest
)
4335 g(['arb_compute_shader-work_group_size_too_large'],
4336 grouptools
.join('compiler', 'work_group_size_too_large'))
4337 g(['arb_compute_shader-dlist'], 'display-list')
4338 g(['arb_compute_shader-indirect-compute'], 'indirect-compute')
4339 g(['arb_compute_shader-local-id'], 'local-id' + '-explosion')
4340 g(['arb_compute_shader-render-and-compute'], 'render-and-compute')
4341 g(['arb_compute_shader-zero-dispatch-size'], 'zero-dispatch-size')
4343 with profile
.test_list
.group_manager(
4345 grouptools
.join('spec', 'arb_shader_storage_buffer_object')) as g
:
4346 g(['arb_shader_storage_buffer_object-minmax'], 'minmax')
4347 g(['arb_shader_storage_buffer_object-rendering'], 'rendering')
4348 g(['arb_shader_storage_buffer_object-getintegeri_v'], 'getintegeri_v')
4349 g(['arb_shader_storage_buffer_object-deletebuffers'], 'deletebuffers')
4350 g(['arb_shader_storage_buffer_object-maxblocks'], 'maxblocks')
4351 g(['arb_shader_storage_buffer_object-ssbo-binding'], 'ssbo-binding')
4352 g(['arb_shader_storage_buffer_object-array-ssbo-binding'], 'array-ssbo-binding')
4353 g(['arb_shader_storage_buffer_object-layout-std430-write-shader'], 'layout-std430-write-shader')
4354 g(['arb_shader_storage_buffer_object-layout-std140-write-shader'], 'layout-std140-write-shader')
4355 g(['arb_shader_storage_buffer_object-program_interface_query'], 'program-interface-query')
4357 with profile
.test_list
.group_manager(
4359 grouptools
.join('spec', 'arb_shader_storage_buffer_object',
4360 'max-ssbo-size')) as g
:
4361 g(['arb_shader_storage_buffer_object-max-ssbo-size', 'vs'], 'vs')
4362 g(['arb_shader_storage_buffer_object-max-ssbo-size', 'vsexceed'],
4364 g(['arb_shader_storage_buffer_object-max-ssbo-size', 'fs'], 'fs')
4365 g(['arb_shader_storage_buffer_object-max-ssbo-size', 'fsexceed'],
4368 with profile
.test_list
.group_manager(
4370 grouptools
.join('spec', 'arb_sparse_buffer')) as g
:
4371 g(['arb_sparse_buffer-basic'], 'basic')
4372 g(['arb_sparse_buffer-buffer-data'], 'buffer-data')
4373 g(['arb_sparse_buffer-commit'], 'commit')
4374 g(['arb_sparse_buffer-minmax'], 'minmax')
4376 with profile
.test_list
.group_manager(
4378 grouptools
.join('spec', 'ext_polygon_offset_clamp')) as g
:
4379 g(['ext_polygon_offset_clamp-draw'])
4380 g(['ext_polygon_offset_clamp-draw_gles2'])
4381 g(['ext_polygon_offset_clamp-dlist'])
4383 with profile
.test_list
.group_manager(
4385 grouptools
.join('spec', 'ARB_pipeline_statistics_query')) as g
:
4386 g(['arb_pipeline_statistics_query-extra_prims'])
4387 g(['arb_pipeline_statistics_query-vert'])
4388 g(['arb_pipeline_statistics_query-vert_adj'])
4389 g(['arb_pipeline_statistics_query-clip'])
4390 g(['arb_pipeline_statistics_query-geom'])
4391 g(['arb_pipeline_statistics_query-frag'])
4392 g(['arb_pipeline_statistics_query-comp'])
4394 with profile
.test_list
.group_manager(PiglitGLTest
, 'hiz') as g
:
4395 g(['hiz-depth-stencil-test-fbo-d0-s8'], run_concurrent
=False)
4396 g(['hiz-depth-stencil-test-fbo-d24-s0'], run_concurrent
=False)
4397 g(['hiz-depth-stencil-test-fbo-d24-s8'], run_concurrent
=False)
4398 g(['hiz-depth-stencil-test-fbo-d24s8'], run_concurrent
=False)
4399 g(['hiz-depth-read-fbo-d24-s0'], run_concurrent
=False)
4400 g(['hiz-depth-read-fbo-d24-s8'], run_concurrent
=False)
4401 g(['hiz-depth-read-fbo-d24s8'], run_concurrent
=False)
4402 g(['hiz-depth-read-window-stencil0'], run_concurrent
=False)
4403 g(['hiz-depth-read-window-stencil1'], run_concurrent
=False)
4404 g(['hiz-depth-test-fbo-d24-s0'], run_concurrent
=False)
4405 g(['hiz-depth-test-fbo-d24-s8'], run_concurrent
=False)
4406 g(['hiz-depth-test-fbo-d24s8'], run_concurrent
=False)
4407 g(['hiz-depth-test-window-stencil0'], run_concurrent
=False)
4408 g(['hiz-depth-test-window-stencil1'], run_concurrent
=False)
4409 g(['hiz-stencil-read-fbo-d0-s8'], run_concurrent
=False)
4410 g(['hiz-stencil-read-fbo-d24-s8'], run_concurrent
=False)
4411 g(['hiz-stencil-read-fbo-d24s8'], run_concurrent
=False)
4412 g(['hiz-stencil-read-window-depth0'], run_concurrent
=False)
4413 g(['hiz-stencil-read-window-depth1'], run_concurrent
=False)
4414 g(['hiz-stencil-test-fbo-d0-s8'], run_concurrent
=False)
4415 g(['hiz-stencil-test-fbo-d24-s8'], run_concurrent
=False)
4416 g(['hiz-stencil-test-fbo-d24s8'], run_concurrent
=False)
4417 g(['hiz-stencil-test-window-depth0'], run_concurrent
=False)
4418 g(['hiz-stencil-test-window-depth1'], run_concurrent
=False)
4420 with profile
.test_list
.group_manager(PiglitGLTest
, 'fast_color_clear') as g
:
4421 g(['fcc-blit-between-clears'])
4422 g(['fcc-read-to-pbo-after-clear'], run_concurrent
=False)
4423 g(['fcc-front-buffer-distraction'], run_concurrent
=False)
4425 for subtest
in ('sample', 'read_pixels', 'blit', 'copy'):
4426 for buffer_type
in ('rb', 'tex'):
4427 if subtest
== 'sample' and buffer_type
== 'rb':
4429 g(['fcc-read-after-clear', subtest
, buffer_type
])
4431 with profile
.test_list
.group_manager(
4432 PiglitGLTest
, grouptools
.join('spec', 'ext_unpack_subimage')) as g
:
4433 g(['ext_unpack_subimage'], 'basic')
4435 with profile
.test_list
.group_manager(
4436 PiglitGLTest
, grouptools
.join('spec', 'oes_draw_texture')) as g
:
4437 g(['oes_draw_texture'])
4439 with profile
.test_list
.group_manager(
4441 grouptools
.join('spec', 'oes_compressed_etc1_rgb8_texture')) as g
:
4442 g(['oes_compressed_etc1_rgb8_texture-basic'], 'basic')
4443 g(['oes_compressed_etc1_rgb8_texture-miptree'], 'miptree')
4445 with profile
.test_list
.group_manager(
4447 grouptools
.join('spec', 'khr_parallel_shader_compile')) as g
:
4448 g(['khr_parallel_shader_compile-basic'], 'basic')
4449 g(['khr_parallel_shader_compile-basic_gles2'], 'basic_gles2')
4451 with profile
.test_list
.group_manager(
4453 grouptools
.join('spec', 'khr_texture_compression_astc')) as g
:
4454 g(['arb_texture_compression-invalid-formats', 'astc'], 'invalid formats')
4455 g(['khr_compressed_astc-array_gl'], 'array-gl')
4456 g(['khr_compressed_astc-array_gles3'], 'array-gles')
4457 g(['khr_compressed_astc-basic_gl'], 'basic-gl')
4458 g(['khr_compressed_astc-basic_gles2'], 'basic-gles')
4459 g(['void-extent-dl-bug'], 'void-extent-dl-bug')
4461 for subtest
in ('hdr', 'ldr', 'srgb', "srgb-fp", "srgb-sd"):
4462 g(['khr_compressed_astc-miptree_gl', '-subtest', subtest
],
4463 'miptree-gl {}'.format(subtest
))
4464 g(['khr_compressed_astc-miptree_gles2', '-subtest', subtest
],
4465 'miptree-gles {}'.format(subtest
))
4466 for subtest
in ('hdr', 'ldr', 'srgb', 'srgb-fp'):
4467 g(['khr_compressed_astc-sliced-3d-miptree_gl', '-subtest', subtest
],
4468 'sliced-3d-miptree-gl {}'.format(subtest
))
4469 g(['khr_compressed_astc-sliced-3d-miptree_gles3', '-subtest', subtest
],
4470 'sliced-3d-miptree-gles {}'.format(subtest
))
4472 with profile
.test_list
.group_manager(
4474 grouptools
.join('spec', 'oes_texture_compression_astc')) as g
:
4475 for subtest
in ('hdr', 'ldr', 'srgb'):
4476 g(['oes_compressed_astc-miptree-3d_gl', '-subtest', subtest
],
4477 'miptree-3d-gl {}'.format(subtest
))
4478 g(['oes_compressed_astc-miptree-3d_gles3', '-subtest', subtest
],
4479 'miptree-3d-gles {}'.format(subtest
))
4481 with profile
.test_list
.group_manager(
4483 grouptools
.join('spec', 'nv_read_depth')) as g
:
4484 g(['read_depth_gles3'])
4486 with profile
.test_list
.group_manager(
4488 grouptools
.join('spec', 'oes_compressed_paletted_texture')) as g
:
4489 g(['oes_compressed_paletted_texture-api'], 'basic API')
4490 g(['arb_texture_compression-invalid-formats', 'paletted'],
4493 with profile
.test_list
.group_manager(
4495 grouptools
.join('spec', 'egl 1.4'),
4496 exclude_platforms
=['glx']) as g
:
4497 g(['egl-create-surface'], 'eglCreateSurface', run_concurrent
=False)
4498 g(['egl-query-surface', '--bad-attr'], 'eglQuerySurface EGL_BAD_ATTRIBUTE',
4499 run_concurrent
=False)
4500 g(['egl-query-surface', '--bad-surface'],
4501 'eglQuerySurface EGL_BAD_SURFACE',
4502 run_concurrent
=False)
4503 g(['egl-query-surface', '--attr=EGL_HEIGHT'], 'eglQuerySurface EGL_HEIGHT',
4504 run_concurrent
=False)
4505 g(['egl-query-surface', '--attr=EGL_WIDTH'], 'eglQuerySurface EGL_WIDTH',
4506 run_concurrent
=False)
4507 g(['egl-terminate-then-unbind-context'],
4508 'eglTerminate then unbind context',
4509 run_concurrent
=False)
4510 g(['egl-create-pbuffer-surface'],
4511 'eglCreatePbufferSurface and then glClear',
4512 run_concurrent
=False)
4513 g(['egl-create-msaa-pbuffer-surface'],
4514 'eglCreatePbufferSurface with EGL_SAMPLES set',
4515 run_concurrent
=False)
4516 g(['egl-create-largest-pbuffer-surface'],
4517 'largest possible eglCreatePbufferSurface and then glClear',
4518 run_concurrent
=False)
4519 g(['egl-invalid-attr'])
4520 g(['egl-context-priority'])
4521 g(['egl-blob-cache'])
4522 g(['egl-copy-buffers'])
4524 with profile
.test_list
.group_manager(
4526 grouptools
.join('spec', 'egl_nok_swap_region'),
4527 exclude_platforms
=['glx']) as g
:
4528 g(['egl-nok-swap-region'], 'basic', run_concurrent
=False)
4530 with profile
.test_list
.group_manager(
4532 grouptools
.join('spec', 'egl_nok_texture_from_pixmap'),
4533 exclude_platforms
=['glx']) as g
:
4534 g(['egl-nok-texture-from-pixmap'], 'basic', run_concurrent
=False)
4536 with profile
.test_list
.group_manager(
4538 grouptools
.join('spec', 'egl_khr_create_context'),
4539 exclude_platforms
=['glx']) as g
:
4540 g(['egl-create-context-default-major-version-gles'],
4541 'default major version GLES', run_concurrent
=False)
4542 g(['egl-create-context-default-major-version-gl'],
4543 'default major version GL', run_concurrent
=False)
4544 g(['egl-create-context-default-minor-version-gles'],
4545 'default minor version GLES', run_concurrent
=False)
4546 g(['egl-create-context-default-minor-version-gl'],
4547 'default minor version GL', run_concurrent
=False)
4548 g(['egl-create-context-valid-attribute-empty-gles'],
4549 'valid attribute empty GLES', run_concurrent
=False)
4550 g(['egl-create-context-valid-attribute-empty-gl'],
4551 'valid attribute empty GL', run_concurrent
=False)
4552 g(['egl-create-context-valid-attribute-null-gles'],
4553 'NULL valid attribute GLES', run_concurrent
=False)
4554 g(['egl-create-context-valid-attribute-null-gl'],
4555 'NULL valid attribute GL', run_concurrent
=False)
4556 g(['egl-create-context-invalid-gl-version'], 'invalid OpenGL version',
4557 run_concurrent
=False)
4558 g(['egl-create-context-invalid-attribute-gles'], 'invalid attribute GLES',
4559 run_concurrent
=False)
4560 g(['egl-create-context-invalid-attribute-gl'], 'invalid attribute GL',
4561 run_concurrent
=False)
4562 g(['egl-create-context-invalid-flag-gles'], 'invalid flag GLES',
4563 run_concurrent
=False)
4564 g(['egl-create-context-invalid-flag-gl'], 'invalid flag GL',
4565 run_concurrent
=False)
4566 g(['egl-create-context-valid-flag-forward-compatible-gl'],
4567 'valid forward-compatible flag GL', run_concurrent
=False)
4568 g(['egl-create-context-invalid-profile'], 'invalid profile',
4569 run_concurrent
=False)
4570 g(['egl-create-context-core-profile'], '3.2 core profile required',
4571 run_concurrent
=False)
4572 g(['egl-create-context-pre-GL32-profile'], 'pre-GL3.2 profile',
4573 run_concurrent
=False)
4574 g(['egl-create-context-verify-gl-flavor'], 'verify GL flavor',
4575 run_concurrent
=False)
4576 g(['egl-create-context-valid-flag-debug-gl', 'gl'], 'valid debug flag GL',
4577 run_concurrent
=False)
4578 g(['egl-create-context-no-error', 'gl'], 'no-error context GL',
4579 run_concurrent
=False)
4581 for api
in ('gles1', 'gles2', 'gles3'):
4582 g(['egl-create-context-valid-flag-debug-gles', api
],
4583 'valid debug flag {}'.format(api
), run_concurrent
=False)
4585 with profile
.test_list
.group_manager(
4587 grouptools
.join('spec', 'egl_khr_gl_image'),
4588 exclude_platforms
=['glx']) as g
:
4589 for internal_format
in ('GL_RGBA', 'GL_DEPTH_COMPONENT24'):
4590 g(['egl_khr_gl_renderbuffer_image-clear-shared-image', internal_format
],
4591 run_concurrent
=False)
4593 with profile
.test_list
.group_manager(
4595 grouptools
.join('spec', 'egl_khr_surfaceless_context'),
4596 exclude_platforms
=['glx']) as g
:
4597 g(['egl-surfaceless-context-viewport'], 'viewport',
4598 run_concurrent
=False)
4600 with profile
.test_list
.group_manager(
4602 grouptools
.join('spec', 'egl_mesa_configless_context'),
4603 exclude_platforms
=['glx']) as g
:
4604 g(['egl-configless-context'], 'basic')
4606 with profile
.test_list
.group_manager(
4608 grouptools
.join('spec', 'egl_ext_client_extensions'),
4609 exclude_platforms
=['glx']) as g
:
4611 g(['egl_ext_client_extensions', str(i
)],
4612 'conformance test {0}'.format(i
))
4614 with profile
.test_list
.group_manager(
4616 grouptools
.join('spec', 'egl_khr_fence_sync'),
4617 exclude_platforms
=['glx']) as g
:
4618 g(['egl_khr_fence_sync'], 'conformance')
4620 with profile
.test_list
.group_manager(
4622 grouptools
.join('spec', 'egl_android_native_fence_sync'),
4623 exclude_platforms
=['glx']) as g
:
4624 g(['egl_khr_fence_sync', 'android_native'])
4626 with profile
.test_list
.group_manager(
4628 grouptools
.join('spec', 'egl_khr_gl_colorspace'),
4629 exclude_platforms
=['glx']) as g
:
4630 g(['egl-gl-colorspace'], 'linear')
4631 g(['egl-gl-colorspace', 'srgb'], 'srgb')
4633 with profile
.test_list
.group_manager(
4635 grouptools
.join('spec', 'egl_khr_wait_sync'),
4636 exclude_platforms
=['glx']) as g
:
4637 g(['egl_khr_fence_sync', 'wait_sync'], 'conformance')
4639 with profile
.test_list
.group_manager(
4641 grouptools
.join('spec', 'egl_khr_get_all_proc_addresses'),
4642 exclude_platforms
=['glx']) as g
:
4643 g(['egl_khr_get_all_proc_addresses'], 'conformance')
4645 with profile
.test_list
.group_manager(
4647 grouptools
.join('spec', 'egl_chromium_sync_control'),
4648 exclude_platforms
=['glx']) as g
:
4649 g(['egl_chromium_sync_control'], 'conformance')
4651 with profile
.test_list
.group_manager(
4653 grouptools
.join('spec', 'egl_ext_device_query'),
4654 exclude_platforms
=['glx']) as g
:
4655 g(['egl_ext_device_query'], 'conformance')
4657 with profile
.test_list
.group_manager(
4659 grouptools
.join('spec', 'egl_ext_device_enumeration'),
4660 exclude_platforms
=['glx']) as g
:
4661 g(['egl_ext_device_enumeration'], 'conformance')
4663 with profile
.test_list
.group_manager(
4665 grouptools
.join('spec', 'egl_ext_device_drm'),
4666 exclude_platforms
=['glx']) as g
:
4667 g(['egl_ext_device_drm'], 'conformance')
4669 with profile
.test_list
.group_manager(
4671 grouptools
.join('spec', 'egl_ext_platform_device'),
4672 exclude_platforms
=['glx']) as g
:
4673 g(['egl_ext_platform_device'], 'conformance')
4675 with profile
.test_list
.group_manager(
4677 grouptools
.join('spec', 'egl_ext_device_base'),
4678 exclude_platforms
=['glx']) as g
:
4679 g(['egl_ext_device_base'], 'conformance')
4681 with profile
.test_list
.group_manager(
4683 grouptools
.join('spec', 'egl_mesa_device_software'),
4684 exclude_platforms
=['glx']) as g
:
4685 g(['egl_mesa_device_software'], 'conformance')
4687 with profile
.test_list
.group_manager(
4689 grouptools
.join('spec', 'egl_mesa_query_driver'),
4690 exclude_platforms
=['glx']) as g
:
4691 g(['egl_mesa_query_driver'], 'conformance')
4693 with profile
.test_list
.group_manager(
4695 grouptools
.join('spec', 'egl_mesa_platform_surfaceless'),
4696 exclude_platforms
=['glx']) as g
:
4697 g(['egl_mesa_platform_surfaceless'], 'conformance')
4699 with profile
.test_list
.group_manager(
4701 grouptools
.join('spec', 'egl_ext_image_dma_buf_import_modifiers'),
4702 exclude_platforms
=['glx']) as g
:
4703 g(['egl_ext_image_dma_buf_import_modifiers-query'], 'conformance')
4705 with profile
.test_list
.group_manager(
4706 PiglitGLTest
, grouptools
.join('spec', '!opengl ES 2.0')) as g
:
4707 g(['glsl-fs-pointcoord_gles2'], 'glsl-fs-pointcoord')
4708 g(['invalid-es3-queries_gles2'])
4709 g(['link-no-vsfs_gles2'], 'link-no-vsfs')
4711 g(['multiple-shader-objects_gles2'])
4712 g(['fbo_discard_gles2'])
4713 g(['draw_buffers_gles2'])
4715 with profile
.test_list
.group_manager(
4716 PiglitGLTest
, grouptools
.join('spec', '!opengl ES 3.0')) as g
:
4717 g(['minmax_gles3'], 'minmax')
4718 g(['texture-immutable-levels_gles3'], 'texture-immutable-levels')
4719 g(['gles-3.0-drawarrays-vertexid'], 'gl_VertexID used with glDrawArrays')
4720 g(['gles-3.0-transform-feedback-uniform-buffer-object'])
4721 g(['gles-3.0-attribute-aliasing'], 'vertex attribute aliasing')
4723 for test_mode
in ['teximage', 'texsubimage']:
4724 g(['ext_texture_array-compressed_gles3', test_mode
, '-fbo'],
4725 'ext_texture_array-compressed_gles3 {0}'.format(test_mode
),
4726 run_concurrent
=False)
4728 for tex_format
in ['rgb8', 'srgb8', 'rgba8', 'srgb8-alpha8', 'r11', 'rg11',
4729 'rgb8-punchthrough-alpha1',
4730 'srgb8-punchthrough-alpha1']:
4731 g(['oes_compressed_etc2_texture-miptree_gles3', tex_format
])
4733 with profile
.test_list
.group_manager(
4734 PiglitGLTest
, grouptools
.join('spec', 'arb_es3_compatibility')) as g
:
4735 g(['es3-primrestart-fixedindex'])
4736 g(['es3-drawarrays-primrestart-fixedindex'])
4738 for tex_format
in ['rgb8', 'srgb8', 'rgba8', 'srgb8-alpha8', 'r11', 'rg11',
4739 'rgb8-punchthrough-alpha1',
4740 'srgb8-punchthrough-alpha1']:
4741 for context
in ['core', 'compat']:
4742 g(['oes_compressed_etc2_texture-miptree', tex_format
, context
])
4744 with profile
.test_list
.group_manager(
4746 grouptools
.join('spec', 'arb_shader_atomic_counters')) as g
:
4747 g(['arb_shader_atomic_counters-active-counters'], 'active-counters')
4748 g(['arb_shader_atomic_counters-array-indexing'], 'array-indexing')
4749 g(['arb_shader_atomic_counters-buffer-binding'], 'buffer-binding')
4750 g(['arb_shader_atomic_counters-default-partition'], 'default-partition')
4751 g(['arb_shader_atomic_counters-fragment-discard'], 'fragment-discard')
4752 g(['arb_shader_atomic_counters-function-argument'], 'function-argument')
4753 g(['arb_shader_atomic_counters-max-counters'], 'max-counters')
4754 g(['arb_shader_atomic_counters-minmax'], 'minmax')
4755 g(['arb_shader_atomic_counters-multiple-defs'], 'multiple-defs')
4756 g(['arb_shader_atomic_counters-semantics'], 'semantics')
4757 g(['arb_shader_atomic_counters-unique-id'], 'unique-id')
4758 g(['arb_shader_atomic_counters-unused-result'], 'unused-result')
4759 g(['arb_shader_atomic_counters-respecify-buffer'], 'respecify-buffer')
4761 with profile
.test_list
.group_manager(
4763 grouptools
.join('spec', 'arb_direct_state_access')) as g
:
4764 g(['arb_direct_state_access-create-transformfeedbacks'],
4765 'create-transformfeedbacks')
4766 g(['arb_direct_state_access-transformfeedback-bufferbase'],
4767 'transformfeedback-bufferbase')
4768 g(['arb_direct_state_access-transformfeedback-bufferrange'],
4769 'transformfeedback-bufferrange')
4770 g(['arb_direct_state_access-gettransformfeedback'], 'gettransformfeedback')
4771 g(['arb_direct_state_access-create-renderbuffers'], 'create-renderbuffers')
4772 g(['arb_direct_state_access-namedrenderbuffer'], 'namedrenderbuffer')
4773 g(['arb_direct_state_access-dsa-textures'], 'dsa-textures')
4774 g(['arb_direct_state_access-texturesubimage'], 'texturesubimage')
4775 g(['arb_direct_state_access-bind-texture-unit'], 'bind-texture-unit')
4776 g(['arb_direct_state_access-create-textures'], 'create-textures')
4777 g(['arb_direct_state_access-texture-storage'], 'textures-storage')
4778 g(['arb_direct_state_access-texunits'], 'texunits')
4779 g(['arb_direct_state_access-texture-params'], 'texture-params')
4780 g(['arb_direct_state_access-copytexturesubimage'], 'copytexturesubimage')
4781 g(['arb_direct_state_access-texture-errors'], 'texture-errors')
4782 g(['arb_direct_state_access-get-textures'], 'get-textures')
4783 g(['arb_direct_state_access-gettextureimage-formats'],
4784 'gettextureimage-formats')
4785 g(['arb_direct_state_access-gettextureimage-formats', 'init-by-rendering'],
4786 'gettextureimage-formats init-by-rendering')
4787 g(['arb_direct_state_access-gettextureimage-luminance'],
4788 'gettextureimage-luminance')
4789 g(['arb_direct_state_access-gettextureimage-targets'],
4790 'gettextureimage-targets')
4791 g(['arb_direct_state_access-compressedtextureimage',
4792 'GL_COMPRESSED_RGBA_S3TC_DXT5_EXT'],
4793 'compressedtextureimage GL_COMPRESSED_RGBA_S3TC_DXT5_EXT')
4794 g(['arb_direct_state_access-getcompressedtextureimage'],
4795 'getcompressedtextureimage')
4796 g(['arb_direct_state_access-texture-storage-multisample'],
4797 'texture-storage-multisample')
4798 g(['arb_direct_state_access-texture-buffer'], 'texture-buffer')
4799 g(['arb_direct_state_access-create-samplers'], 'create-samplers')
4800 g(['arb_direct_state_access-create-programpipelines'],
4801 'create-programpipelines')
4802 g(['arb_direct_state_access-create-queries'], 'create-queries')
4803 g(['arb_direct_state_access-generatetexturemipmap'], 'generatetexturemipmap')
4805 with profile
.test_list
.group_manager(
4807 grouptools
.join('spec', 'ext_direct_state_access')) as g
:
4808 g(['ext_direct_state_access-matrix-commands'],
4811 with profile
.test_list
.group_manager(
4813 grouptools
.join('spec', 'arb_shader_image_load_store')) as g
:
4814 g(['arb_shader_image_load_store-atomicity'], 'atomicity')
4815 g(['arb_shader_image_load_store-bitcast'], 'bitcast')
4816 g(['arb_shader_image_load_store-coherency'], 'coherency')
4817 g(['arb_shader_image_load_store-dead-fragments'], 'dead-fragments')
4818 g(['arb_shader_image_load_store-early-z'], 'early-z')
4819 g(['arb_shader_image_load_store-host-mem-barrier'], 'host-mem-barrier')
4820 g(['arb_shader_image_load_store-indexing'], 'indexing')
4821 g(['arb_shader_image_load_store-invalid'], 'invalid')
4822 g(['arb_shader_image_load_store-layer'], 'layer')
4823 g(['arb_shader_image_load_store-level'], 'level')
4824 g(['arb_shader_image_load_store-max-images'], 'max-images')
4825 g(['arb_shader_image_load_store-max-size'], 'max-size')
4826 g(['arb_shader_image_load_store-minmax'], 'minmax')
4827 g(['arb_shader_image_load_store-qualifiers'], 'qualifiers')
4828 g(['arb_shader_image_load_store-restrict'], 'restrict')
4829 g(['arb_shader_image_load_store-semantics'], 'semantics')
4830 g(['arb_shader_image_load_store-shader-mem-barrier'], 'shader-mem-barrier')
4831 g(['arb_shader_image_load_store-state'], 'state')
4832 g(['arb_shader_image_load_store-unused'], 'unused')
4834 with profile
.test_list
.group_manager(
4836 grouptools
.join('spec', 'arb_post_depth_coverage')) as g
:
4837 g(['arb_post_depth_coverage-basic'])
4838 g(['arb_post_depth_coverage-multisampling'])
4839 g(['arb_post_depth_coverage-sample-shading'])
4841 with profile
.test_list
.group_manager(
4843 grouptools
.join('spec', 'arb_fragment_shader_interlock')) as g
:
4844 g(['arb_fragment_shader_interlock-image-load-store'])
4846 with profile
.test_list
.group_manager(
4848 grouptools
.join('spec', 'arb_shader_image_size')) as g
:
4849 g(['arb_shader_image_size-builtin'], 'builtin')
4851 with profile
.test_list
.group_manager(
4853 grouptools
.join('spec', 'arb_shader_texture_image_samples')) as g
:
4854 g(['arb_shader_texture_image_samples-builtin-image'], 'builtin-image')
4856 with profile
.test_list
.group_manager(
4858 grouptools
.join('spec', 'arb_texture_stencil8')) as g
:
4859 g(['arb_texture_stencil8-draw'], 'draw')
4860 g(['arb_texture_stencil8-getteximage'], 'getteximage')
4861 g(['arb_texture_stencil8-stencil-texture'], 'stencil-texture')
4862 g(['arb_texture_stencil8-fbo-stencil8', 'clear', 'GL_STENCIL_INDEX8'], 'fbo-stencil-clear')
4863 g(['arb_texture_stencil8-fbo-stencil8', 'blit', 'GL_STENCIL_INDEX8'], 'fbo-stencil-blit')
4864 g(['arb_texture_stencil8-fbo-stencil8', 'readpixels', 'GL_STENCIL_INDEX8'], 'fbo-stencil-readpixels')
4865 add_fbo_formats_tests(g
, 'GL_ARB_texture_stencil8')
4866 add_texwrap_format_tests(g
, 'GL_ARB_texture_stencil8')
4868 with profile
.test_list
.group_manager(
4870 grouptools
.join('spec', 'arb_vertex_attrib_64bit')) as g
:
4871 g(['arb_vertex_attrib_64bit-double_attribs'], 'double_attribs')
4872 g(['arb_vertex_attrib_64bit-double_attribs_dlist'], 'get_double_attribs-display-lists')
4873 g(['arb_vertex_attrib_64bit-check-explicit-location'], 'check-explicit-location')
4874 g(['arb_vertex_attrib_64bit-getactiveattrib'], 'getactiveattrib')
4875 g(['arb_vertex_attrib_64bit-max-vertex-attrib'], 'max-vertex-attrib')
4876 for test_type
in ('shader', 'api'):
4877 g(['arb_vertex_attrib_64bit-overlapping-locations', test_type
],
4878 run_concurrent
=False)
4880 with profile
.test_list
.group_manager(
4882 grouptools
.join('spec', 'arb_query_buffer_object')) as g
:
4883 g(['arb_query_buffer_object-qbo'], 'qbo')
4884 g(['arb_query_buffer_object-coherency'], 'coherency')
4886 with profile
.test_list
.group_manager(
4888 grouptools
.join('spec', 'ext_framebuffer_blit')) as g
:
4889 g(['ext_framebuffer_blit-blit-early'], 'blit-early')
4891 # Group OES_draw_elements_base_vertex
4892 with profile
.test_list
.group_manager(
4894 grouptools
.join('spec', 'OES_draw_elements_base_vertex')) as g
:
4895 g(['oes_draw_elements_base_vertex-drawelements'], run_concurrent
=False)
4896 g(['oes_draw_elements_base_vertex-drawelements-instanced'],
4897 run_concurrent
=False)
4898 g(['oes_draw_elements_base_vertex-drawrangeelements'],
4899 run_concurrent
=False)
4900 g(['oes_draw_elements_base_vertex-multidrawelements'],
4901 run_concurrent
=False)
4903 with profile
.test_list
.group_manager(
4904 BuiltInConstantsTest
,
4905 grouptools
.join('spec', 'oes_geometry_shader')) as g
:
4906 g(['built-in-constants_gles3',
4907 os
.path
.join('spec', 'oes_geometry_shader', 'minimum-maximums.txt')],
4908 'built-in constants')
4910 # Group EXT_shader_samples_identical
4911 with profile
.test_list
.group_manager(
4913 grouptools
.join('spec', 'EXT_shader_samples_identical')) as g
:
4914 for sample_count
in MSAA_SAMPLE_COUNTS
:
4915 g(['ext_shader_samples_identical-simple-fs', sample_count
])
4917 # Group ARB_shader_draw_parameters
4918 with profile
.test_list
.group_manager(
4920 grouptools
.join('spec', 'ARB_shader_draw_parameters')) as g
:
4921 g(['arb_shader_draw_parameters-drawid', 'drawid'], 'drawid')
4922 g(['arb_shader_draw_parameters-drawid', 'vertexid'], 'drawid-vertexid')
4923 g(['arb_shader_draw_parameters-drawid-indirect', 'drawid'], 'drawid-indirect')
4924 g(['arb_shader_draw_parameters-drawid-indirect', 'basevertex'], 'drawid-indirect-basevertex')
4925 g(['arb_shader_draw_parameters-drawid-indirect', 'baseinstance'], 'drawid-indirect-baseinstance')
4926 g(['arb_shader_draw_parameters-drawid-indirect', 'vertexid'], 'drawid-indirect-vertexid')
4928 variables
= ('basevertex', 'baseinstance', 'basevertex-baseinstance', 'vertexid-zerobased')
4930 g(['arb_shader_draw_parameters-basevertex', v
], v
)
4932 g(['arb_shader_draw_parameters-basevertex', v
, 'indirect'], v
+ '-indirect')
4934 # Group ARB_indirect_parameters
4935 with profile
.test_list
.group_manager(
4937 grouptools
.join('spec', 'ARB_indirect_parameters')) as g
:
4938 g(['arb_indirect_parameters-tf-count-arrays'], 'tf-count-arrays')
4939 g(['arb_indirect_parameters-tf-count-elements'], 'tf-count-elements')
4940 g(['arb_indirect_parameters-conditional-render'], 'conditional-render')
4942 with profile
.test_list
.group_manager(
4944 grouptools
.join('object namespace pollution')) as g
:
4945 for object_type
in ("buffer", "framebuffer", "program", "renderbuffer", "texture", "vertex-array"):
4946 for operation
in ("glBitmap", "glBlitFramebuffer", "glClear", "glClearTexSubImage", "glCopyImageSubData", "glCopyPixels", "glCopyTexSubImage2D", "glDrawPixels", "glGenerateMipmap", "glGetTexImage", "glGetTexImage-compressed", "glTexSubImage2D"):
4947 g(['object-namespace-pollution', operation
, object_type
],
4948 '{} with {}'.format(object_type
, operation
))
4950 # Group ARB_texture_barrier
4951 resolution_set
= ['32', '512']
4952 blend_passes_set
= ['1', '42']
4953 num_textures_set
= ['1', '8']
4954 granularity_set
= ['8', '64', '128']
4955 draw_passes_set
= ['1', '2', '3', '4', '7', '8']
4957 with profile
.test_list
.group_manager(
4959 grouptools
.join('spec', 'arb_texture_barrier')) as g
:
4960 for resolution
, blend_passes
, num_textures
, granularity
, draw_passes
in itertools
.product(
4961 resolution_set
, blend_passes_set
, num_textures_set
, granularity_set
, draw_passes_set
):
4962 g(['arb_texture_barrier-blending-in-shader', resolution
,
4963 blend_passes
, num_textures
, granularity
, draw_passes
])
4966 # Group ARB_invalidate_subdata
4967 with profile
.test_list
.group_manager(
4969 grouptools
.join('spec', 'ARB_invalidate_subdata')) as g
:
4970 g(['arb_invalidate_subdata-buffer'], 'buffer')
4972 # Group EXT_window_rectangles
4973 with profile
.test_list
.group_manager(
4975 grouptools
.join('spec', 'EXT_window_rectangles')) as g
:
4976 g(['ext_window_rectangles-dlist'], 'dlist')
4977 g(['ext_window_rectangles-errors'], 'errors')
4978 g(['ext_window_rectangles-render'], 'render')
4980 g(['ext_window_rectangles-errors_gles3'], 'errors_gles3')
4981 g(['ext_window_rectangles-render_gles3'], 'render_gles3')
4983 # Group ARB_compute_variable_group_size
4984 with profile
.test_list
.group_manager(
4986 grouptools
.join('spec', 'ARB_compute_variable_group_size')) as g
:
4987 g(['arb_compute_variable_group_size-errors'], 'errors')
4988 g(['arb_compute_variable_group_size-local-size'], 'local-size')
4989 g(['arb_compute_variable_group_size-minmax'], 'minmax')
4991 # Group INTEL_conservative_rasterization
4992 with profile
.test_list
.group_manager(
4994 grouptools
.join('spec', 'INTEL_conservative_rasterization')) as g
:
4995 g(['intel_conservative_rasterization-depthcoverage'])
4996 g(['intel_conservative_rasterization-innercoverage'])
4997 g(['intel_conservative_rasterization-invalid'])
4998 g(['intel_conservative_rasterization-tri'])
4999 g(['intel_conservative_rasterization-depthcoverage_gles3'])
5000 g(['intel_conservative_rasterization-innercoverage_gles3'])
5001 g(['intel_conservative_rasterization-invalid_gles3'])
5002 g(['intel_conservative_rasterization-tri_gles3'])
5004 # Group INTEL_blackhole_render
5005 with profile
.test_list
.group_manager(
5007 grouptools
.join('spec', 'INTEL_blackhole_render')) as g
:
5008 g(['intel_blackhole-draw'])
5009 g(['intel_blackhole-dispatch'])
5010 g(['intel_blackhole-draw_gles2'])
5011 g(['intel_blackhole-draw_gles3'])
5013 # Group ARB_bindless_texture
5014 with profile
.test_list
.group_manager(
5016 grouptools
.join('spec', 'ARB_bindless_texture')) as g
:
5017 g(['arb_bindless_texture-border-color'], 'border-color')
5018 g(['arb_bindless_texture-conversions'], 'conversions')
5019 g(['arb_bindless_texture-errors'], 'errors')
5020 g(['arb_bindless_texture-handles'], 'handles')
5021 g(['arb_bindless_texture-illegal'], 'illegal')
5022 g(['arb_bindless_texture-legal'], 'legal')
5023 g(['arb_bindless_texture-limit'], 'limit')
5024 g(['arb_bindless_texture-uint64_attribs'], 'uint64_attribs')
5025 g(['arb_bindless_texture-uniform'], 'uniform')
5027 # Group ARB_sample_locations
5028 with profile
.test_list
.group_manager(
5030 grouptools
.join('spec', 'ARB_sample_locations')) as g
:
5031 g(['arb_sample_locations'], 'test')
5033 with profile
.test_list
.group_manager(
5035 grouptools
.join('spec', 'NV_image_formats')) as g
:
5036 g(['nv_image_formats-gles3'])
5038 with profile
.test_list
.group_manager(
5040 grouptools
.join('spec', 'EXT_color_buffer_float')) as g
:
5041 g(['ext_color_buffer_float-draw_gles3'])
5043 with profile
.test_list
.group_manager(
5045 grouptools
.join('spec', 'AMD_compressed_atc_texture')) as g
:
5046 g(['amd_compressed_atc_texture-miptree'], 'miptree')
5048 if platform
.system() is 'Windows':
5049 profile
.filters
.append(lambda p
, _
: not p
.startswith('glx'))