1# -*- coding: utf-8 -*-
2
3#-------------------------------------------------------------------------
4#
5# Copyright 2015 The Android Open Source Project
6# Copyright (C) 2016 The Khronos Group Inc
7#
8# Licensed under the Apache License, Version 2.0 (the "License");
9# you may not use this file except in compliance with the License.
10# You may obtain a copy of the License at
11#
12#      http://www.apache.org/licenses/LICENSE-2.0
13#
14# Unless required by applicable law or agreed to in writing, software
15# distributed under the License is distributed on an "AS IS" BASIS,
16# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17# See the License for the specific language governing permissions and
18# limitations under the License.
19#
20#-------------------------------------------------------------------------
21
22import os
23import sys
24
25from collections import OrderedDict
26
27from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists
28from build_caselists import Module, getModuleByName, DEFAULT_BUILD_DIR, DEFAULT_TARGET
29
30scriptPath = os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts")
31sys.path.insert(0, scriptPath)
32
33from ctsbuild.common import DEQP_DIR
34from ctsbuild.config import ANY_GENERATOR, BuildConfig
35
36
37COPYRIGHT_DECLARATION = """\
38/*     Copyright (C) 2016-2017 The Khronos Group Inc
39 *
40 *     Licensed under the Apache License, Version 2.0 (the "License");
41 *     you may not use this file except in compliance with the License.
42 *     You may obtain a copy of the License at
43 *
44 *          http://www.apache.org/licenses/LICENSE-2.0
45 *
46 *     Unless required by applicable law or agreed to in writing, software
47 *     distributed under the License is distributed on an "AS IS" BASIS,
48 *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
49 *     See the License for the specific language governing permissions and
50 *     limitations under the License.
51*/"""
52
53buildPath						= DEFAULT_BUILD_DIR.format(targetName = DEFAULT_TARGET, buildType = "Release")
54
55#-------------------------------------------------- ES MUSTPASS----------------------------------------------------------------------
56
57CTS_AOSP_MP_DATA_DIR			= os.path.join(DEQP_DIR, "external", "openglcts", "data", "mustpass", "gles", "aosp_mustpass")
58
59CTS_AOSP_MP_DEVICE_DIR			= "gl_cts/data/mustpass/gles/aosp_mustpass"
60
61CTS_MP_INC_DIR					= os.path.join(DEQP_DIR, "external", "openglcts", "modules", "runner")
62
63CTS_AOSP_MP_ES_PROJECT			= Project(name = "AOSP Mustpass ES", path = CTS_AOSP_MP_DATA_DIR, incpath = CTS_MP_INC_DIR, devicepath = CTS_AOSP_MP_DEVICE_DIR, copyright = COPYRIGHT_DECLARATION)
64
65CTS_KHR_MP_DATA_DIR				= os.path.join(DEQP_DIR, "external", "openglcts", "data", "mustpass", "gles", "khronos_mustpass")
66
67CTS_KHR_MP_DEVICE_DIR			= "gl_cts/data/mustpass/gles/khronos_mustpass"
68
69CTS_KHR_MP_ES_PROJECT			= Project(name = "Khronos Mustpass ES", path = CTS_KHR_MP_DATA_DIR, incpath = CTS_MP_INC_DIR, devicepath = CTS_KHR_MP_DEVICE_DIR, copyright = COPYRIGHT_DECLARATION)
70
71CTS_AOSP_MP_EGL_DEVICE_DIR		= "gl_cts/data/mustpass/egl/aosp_mustpass"
72
73CTS_AOSP_MP_EGL_DATA_DIR		= os.path.join(DEQP_DIR, "external", "openglcts", "data", "mustpass", "egl", "aosp_mustpass")
74
75CTS_AOSP_MP_EGL_PROJECT			= Project(name = "AOSP Mustpass EGL", path = CTS_AOSP_MP_EGL_DATA_DIR, incpath = CTS_MP_INC_DIR, devicepath = CTS_AOSP_MP_EGL_DEVICE_DIR, copyright = COPYRIGHT_DECLARATION)
76
77CTS_KHR_MP_NOCTX_DATA_DIR		= os.path.join(DEQP_DIR, "external", "openglcts", "data", "mustpass", "gles", "khronos_mustpass_noctx")
78
79CTS_KHR_MP_NOCTX_DEVICE_DIR		= "gl_cts/data/mustpass/gles/khronos_mustpass_noctx"
80
81CTS_KHR_MP_NOCTX_ES_PROJECT		= Project(name = "Khronos Mustpass ES NoContext", path = CTS_KHR_MP_NOCTX_DATA_DIR, incpath = CTS_MP_INC_DIR, devicepath = CTS_KHR_MP_NOCTX_DEVICE_DIR, copyright = COPYRIGHT_DECLARATION)
82
83CTS_KHR_MP_SINGLE_DATA_DIR		= os.path.join(DEQP_DIR, "external", "openglcts", "data", "mustpass", "gles", "khronos_mustpass_single")
84
85CTS_KHR_MP_SINGLE_DEVICE_DIR	= "gl_cts/data/mustpass/gles/khronos_mustpass_single"
86
87CTS_KHR_MP_SINGLE_ES_PROJECT		= Project(name = "Khronos Mustpass ES Single Config", path = CTS_KHR_MP_SINGLE_DATA_DIR, incpath = CTS_MP_INC_DIR, devicepath = CTS_KHR_MP_SINGLE_DEVICE_DIR, copyright = COPYRIGHT_DECLARATION)
88
89EGL_MODULE						= getModuleByName("dEQP-EGL")
90ES2CTS_MODULE					= getModuleByName("dEQP-GLES2")
91ES3CTS_MODULE					= getModuleByName("dEQP-GLES3")
92ES31CTS_MODULE					= getModuleByName("dEQP-GLES31")
93GL45ES3_MODULE					= getModuleByName("dEQP-GL45-ES3")
94GL45ES31_MODULE					= getModuleByName("dEQP-GL45-ES31")
95
96ES2KHR_MODULE					= getModuleByName("KHR-GLES2")
97ES3KHR_MODULE					= getModuleByName("KHR-GLES3")
98ES31KHR_MODULE					= getModuleByName("KHR-GLES31")
99ES32KHR_MODULE					= getModuleByName("KHR-GLES32")
100NOCTX_ES2_KHR_MODULE			= getModuleByName("KHR-NOCTX-ES2")
101NOCTX_ES32_KHR_MODULE			= getModuleByName("KHR-NOCTX-ES32")
102SINGLE_ES32_KHR_MODULE			= getModuleByName("KHR-Single-GLES32")
103
104ES2GTF_MODULE					= getModuleByName("GTF-GLES2")
105ES3GTF_MODULE					= getModuleByName("GTF-GLES3")
106ES31GTF_MODULE					= getModuleByName("GTF-GLES31")
107
108GLCTS_GLES2_PKG						= Package(module = ES2CTS_MODULE, configurations = [
109		# Master
110		Configuration(name			= "master",
111					glconfig		= "rgba8888d24s8ms0",
112					rotation		= "unspecified",
113					surfacewidth	= "256",
114					surfaceheight	= "256",
115					filters			= [include("gles2-master.txt")]),
116	])
117GLCTS_3_2_2_GLES3_PKG					= Package(module = ES3CTS_MODULE, configurations = [
118		# Master
119		Configuration(name			= "master",
120					glconfig		= "rgba8888d24s8ms0",
121					rotation		= "unspecified",
122					surfacewidth	= "256",
123					surfaceheight	= "256",
124					filters			= [include("gles3-master.txt")]),
125
126		# Rotations
127		Configuration(name			= "rotate-portrait",
128					glconfig		= "rgba8888d24s8ms0",
129					rotation		= "0",
130					surfacewidth	= "256",
131					surfaceheight	= "256",
132					os				= "android",
133					filters			= [include("gles3-master.txt"), include("gles3-rotation.txt")]),
134		Configuration(name			= "rotate-landscape",
135					glconfig		= "rgba8888d24s8ms0",
136					rotation		= "90",
137					surfacewidth	= "256",
138					surfaceheight	= "256",
139					os				= "android",
140					filters			= [include("gles3-master.txt"), include("gles3-rotation.txt")]),
141		Configuration(name			= "rotate-reverse-portrait",
142					glconfig		= "rgba8888d24s8ms0",
143					rotation		= "180",
144					surfacewidth	= "256",
145					surfaceheight	= "256",
146					os				= "android",
147					filters			= [include("gles3-master.txt"), include("gles3-rotation.txt")]),
148		Configuration(name			= "rotate-reverse-landscape",
149					glconfig		= "rgba8888d24s8ms0",
150					rotation		= "270",
151					surfacewidth	= "256",
152					surfaceheight	= "256",
153					os				= "android",
154					filters		= [include("gles3-master.txt"), include("gles3-rotation.txt")]),
155
156		# MSAA
157		Configuration(name			= "multisample",
158					glconfig		= "rgba8888d24s8ms4",
159					rotation		= "unspecified",
160					surfacewidth	= "256",
161					surfaceheight	= "256",
162					filters			= [include("gles3-master.txt"),
163									   include("gles3-multisample.txt"),
164									   exclude("gles3-multisample-issues.txt")]),
165
166		# Pixel format
167		Configuration(name			= "565-no-depth-no-stencil",
168					glconfig		= "rgb565d0s0ms0",
169					rotation		= "unspecified",
170					surfacewidth	= "256",
171					surfaceheight	= "256",
172					os				= "android",
173					filters			= [include("gles3-master.txt"),
174									   include("gles3-pixelformat.txt"),
175									   exclude("gles3-pixelformat-issues.txt")]),
176	])
177GLCTS_3_2_2_GLES31_PKG					= Package(module = ES31CTS_MODULE, configurations = [
178		# Master
179		Configuration(name			= "master",
180					glconfig		= "rgba8888d24s8ms0",
181					rotation		= "unspecified",
182					surfacewidth	= "256",
183					surfaceheight	= "256",
184					filters			= [include("gles31-master.txt")]),
185		# Rotations
186		Configuration(name			= "rotate-portrait",
187					glconfig		= "rgba8888d24s8ms0",
188					rotation		= "0",
189					surfacewidth	= "256",
190					surfaceheight	= "256",
191					os				= "android",
192					filters			= [include("gles31-master.txt"), include("gles31-rotation.txt")]),
193		Configuration(name			= "rotate-landscape",
194					glconfig		= "rgba8888d24s8ms0",
195					rotation		= "90",
196					surfacewidth	= "256",
197					surfaceheight	= "256",
198					os				= "android",
199					filters			= [include("gles31-master.txt"), include("gles31-rotation.txt")]),
200		Configuration(name			= "rotate-reverse-portrait",
201					glconfig		= "rgba8888d24s8ms0",
202					rotation		= "180",
203					surfacewidth	= "256",
204					surfaceheight	= "256",
205					os				= "android",
206					filters			= [include("gles31-master.txt"), include("gles31-rotation.txt")]),
207		Configuration(name			= "rotate-reverse-landscape",
208					glconfig		= "rgba8888d24s8ms0",
209					rotation		= "270",
210					surfacewidth	= "256",
211					surfaceheight	= "256",
212					os				= "android",
213					filters			= [include("gles31-master.txt"), include("gles31-rotation.txt")]),
214
215		# MSAA
216		Configuration(name			= "multisample",
217					glconfig		= "rgba8888d24s8ms4",
218					rotation		= "unspecified",
219					surfacewidth	= "256",
220					surfaceheight	= "256",
221					filters			= [include("gles31-master.txt"), include("gles31-multisample.txt")]),
222
223		# Pixel format
224		Configuration(name			= "565-no-depth-no-stencil",
225					glconfig		= "rgb565d0s0ms0",
226					rotation		= "unspecified",
227					surfacewidth	= "256",
228					surfaceheight	= "256",
229					os				= "android",
230					filters			= [include("gles31-master.txt"), include("gles31-pixelformat.txt")]),
231	])
232
233# 3.2.3.x
234GLCTS_3_2_3_EGL_COMMON_FILTERS			= [include("egl-master.txt"),
235		exclude("egl-test-issues.txt"),
236		exclude("egl-internal-api-tests.txt"),
237		exclude("egl-driver-issues.txt")
238	]
239GLCTS_3_2_3_EGL_PKG						= Package(module = EGL_MODULE, configurations = [
240		# Master
241		Configuration(name			= "master",
242					glconfig		= "rgba8888d24s8ms0",
243					rotation		= "unspecified",
244					surfacewidth    = "256",
245                    surfaceheight   = "256",
246					filters			= GLCTS_3_2_3_EGL_COMMON_FILTERS),
247	])
248
249GLCTS_3_2_3_GLES2_COMMON_FILTERS	= [
250		include("gles2-master.txt"),
251		exclude("gles2-test-issues.txt"),
252		exclude("gles2-spec-issues.txt"),
253		exclude("gles2-driver-issues.txt"),
254		exclude("gles2-hw-issues.txt")
255	]
256GLCTS_3_2_3_GLES2_PKG         = Package(module = ES2CTS_MODULE, configurations = [
257        # Master
258        Configuration(name          = "master",
259                    glconfig        = "rgba8888d24s8ms0",
260                    rotation        = "unspecified",
261                    surfacewidth    = "256",
262                    surfaceheight   = "256",
263                    filters         = GLCTS_3_2_3_GLES2_COMMON_FILTERS),
264    ])
265
266GLCTS_3_2_3_GLES3_COMMON_FILTERS		= [
267		include("gles3-master.txt"),
268		exclude("gles3-test-issues.txt"),
269		exclude("gles3-spec-issues.txt"),
270		exclude("gles3-driver-issues.txt"),
271	]
272
273GLCTS_3_2_3_GLES3_PKG				= Package(module = ES3CTS_MODULE, configurations = [
274		# Master
275		Configuration(name			= "master",
276					glconfig	= "rgba8888d24s8ms0",
277					rotation	= "unspecified",
278					surfacewidth    = "256",
279					surfaceheight   = "256",
280					filters		= GLCTS_3_2_3_GLES3_COMMON_FILTERS + [exclude("gles3-hw-issues.txt")]),
281		# Rotations
282		Configuration(name			= "rotate-portrait",
283					glconfig	= "rgba8888d24s8ms0",
284					rotation	= "0",
285					surfacewidth	= "256",
286					surfaceheight	= "256",
287					os				= "android",
288					filters		= GLCTS_3_2_3_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
289		Configuration(name			= "rotate-landscape",
290					glconfig	= "rgba8888d24s8ms0",
291					rotation	= "90",
292					surfacewidth	= "256",
293					surfaceheight	= "256",
294					os				= "android",
295					filters		= GLCTS_3_2_3_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
296		Configuration(name			= "rotate-reverse-portrait",
297					glconfig	= "rgba8888d24s8ms0",
298					rotation	= "180",
299					surfacewidth	= "256",
300					surfaceheight	= "256",
301					os				= "android",
302					filters		= GLCTS_3_2_3_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
303		Configuration(name			= "rotate-reverse-landscape",
304					glconfig	= "rgba8888d24s8ms0",
305					rotation	= "270",
306					surfacewidth	= "256",
307					surfaceheight	= "256",
308					os				= "android",
309					filters		= GLCTS_3_2_3_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
310
311		# MSAA
312		Configuration(name			= "multisample",
313					glconfig	= "rgba8888d24s8ms4",
314					rotation	= "unspecified",
315					surfacewidth	= "256",
316					surfaceheight	= "256",
317					filters		= GLCTS_3_2_3_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"), exclude("gles3-multisample-hw-issues.txt")]),
318
319		# Pixel format
320		Configuration(name			= "565-no-depth-no-stencil",
321					glconfig	= "rgb565d0s0ms0",
322					rotation	= "unspecified",
323					surfacewidth	= "256",
324					surfaceheight	= "256",
325					os				= "android",
326					filters		= GLCTS_3_2_3_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt")]),
327
328	])
329
330GLCTS_3_2_3_GLES31_COMMON_FILTERS	= [
331		include("gles31-master.txt"),
332		exclude("gles31-test-issues.txt"),
333		exclude("gles31-spec-issues.txt"),
334		exclude("gles31-driver-issues.txt"),
335		exclude("gles31-hw-issues.txt")
336	]
337
338GLCTS_3_2_3_GLES31_PKG				= Package(module = ES31CTS_MODULE, configurations = [
339		# Master
340		Configuration(name			= "master",
341					glconfig	= "rgba8888d24s8ms0",
342					rotation	= "unspecified",
343					surfacewidth	= "256",
344					surfaceheight	= "256",
345					filters		= GLCTS_3_2_3_GLES31_COMMON_FILTERS),
346
347		# Rotations
348		Configuration(name			= "rotate-portrait",
349					glconfig	= "rgba8888d24s8ms0",
350					rotation	= "0",
351					surfacewidth	= "256",
352					surfaceheight	= "256",
353					os				= "android",
354					filters		= GLCTS_3_2_3_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
355		Configuration(name			= "rotate-landscape",
356					glconfig	= "rgba8888d24s8ms0",
357					rotation	= "90",
358					surfacewidth	= "256",
359					surfaceheight	= "256",
360					os				= "android",
361					filters		= GLCTS_3_2_3_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
362		Configuration(name			= "rotate-reverse-portrait",
363					glconfig	= "rgba8888d24s8ms0",
364					rotation	= "180",
365					surfacewidth	= "256",
366					surfaceheight	= "256",
367					os				= "android",
368					filters		= GLCTS_3_2_3_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
369		Configuration(name			= "rotate-reverse-landscape",
370					glconfig	= "rgba8888d24s8ms0",
371					rotation	= "270",
372					surfacewidth	= "256",
373					surfaceheight	= "256",
374					os				= "android",
375					filters		= GLCTS_3_2_3_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
376
377		# MSAA
378		Configuration(name			= "multisample",
379					glconfig	= "rgba8888d24s8ms4",
380					rotation	= "unspecified",
381					surfacewidth	= "256",
382					surfaceheight	= "256",
383					filters		= [include("gles31-master.txt"),
384									include("gles31-multisample.txt"),
385									exclude("gles31-multisample-test-issues.txt")]),
386
387		# Pixel format
388		Configuration(name			= "565-no-depth-no-stencil",
389					glconfig	= "rgb565d0s0ms0",
390					rotation	= "unspecified",
391					surfacewidth	= "256",
392					surfaceheight	= "256",
393					os				= "android",
394					filters		= GLCTS_3_2_3_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")]),
395	])
396
397GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS	= [
398		include("gles32-khr-master.txt"),
399		exclude("gles32-khr-test-issues.txt"),
400		exclude("gles32-khr-spec-issues.txt")
401	]
402
403GLCTS_3_2_3_GLES32_KHR_PKG_1CFG			= Package(module = ES32KHR_MODULE, configurations = [
404		# Master
405		Configuration(name			= "khr-master",
406					surfacewidth	= "64",
407					surfaceheight	= "64",
408					baseseed		= "1",
409					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
410		Configuration(name			= "khr-master",
411					surfacewidth	= "113",
412					surfaceheight	= "47",
413					baseseed		= "2",
414					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
415		Configuration(name			= "khr-master",
416					surfacewidth	= "64",
417					surfaceheight	= "-1",
418					baseseed		= "3",
419					fboconfig		= "rgba8888d24s8",
420					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
421		Configuration(name			= "khr-master",
422					surfacewidth	= "-1",
423					surfaceheight	= "64",
424					baseseed		= "3",
425					fboconfig		= "rgba8888d24s8",
426					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
427	])
428
429GLCTS_3_2_3_GLES32_KHR_PKG_N1CFG		= Package(module = ES32KHR_MODULE, useforfirsteglconfig = False, configurations = [
430		# Master
431		Configuration(name			= "khr-master",
432					surfacewidth	= "64",
433					surfaceheight	= "64",
434					baseseed		= "1",
435					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
436		Configuration(name			= "khr-master",
437					surfacewidth	= "113",
438					surfaceheight	= "47",
439					baseseed		= "2",
440					filters			= GLCTS_3_2_3_GLES32_KHR_COMMON_FILTERS),
441	])
442
443
444# master
445MAIN_EGL_COMMON_FILTERS			= [include("egl-master.txt"),
446										exclude("egl-test-issues.txt"),
447										exclude("egl-internal-api-tests.txt")]
448MAIN_EGL_PKG						= Package(module = EGL_MODULE, configurations = [
449		# Master
450		Configuration(name			= "master",
451					glconfig		= "rgba8888d24s8ms0",
452					rotation		= "unspecified",
453					surfacewidth	= "256",
454					surfaceheight	= "256",
455					filters			= MAIN_EGL_COMMON_FILTERS),
456	])
457
458MAIN_GLES2_COMMON_FILTERS			= [
459				include("gles2-master.txt"),
460				exclude("gles2-test-issues.txt"),
461				exclude("gles2-spec-issues.txt")
462		]
463MAIN_GLES2_PKG         = Package(module = ES2CTS_MODULE, configurations = [
464        # Master
465        Configuration(name          = "master",
466                    glconfig        = "rgba8888d24s8ms0",
467                    rotation        = "unspecified",
468                    surfacewidth    = "256",
469                    surfaceheight   = "256",
470                    filters         = MAIN_GLES2_COMMON_FILTERS),
471    ])
472
473MAIN_GLES3_COMMON_FILTERS		= [
474		include("gles3-master.txt"),
475		exclude("gles3-test-issues.txt"),
476		exclude("gles3-spec-issues.txt")
477	]
478MAIN_GLES3_PKG				= Package(module = ES3CTS_MODULE, configurations = [
479		# Master
480		Configuration(name			= "master",
481					glconfig	= "rgba8888d24s8ms0",
482					rotation	= "unspecified",
483					surfacewidth    = "256",
484					surfaceheight   = "256",
485					filters		= MAIN_GLES3_COMMON_FILTERS),
486		# Rotations
487		Configuration(name			= "rotate-portrait",
488					glconfig	= "rgba8888d24s8ms0",
489					rotation	= "0",
490					surfacewidth	= "256",
491					surfaceheight	= "256",
492					os				= "android",
493					filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
494		Configuration(name			= "rotate-landscape",
495					glconfig	= "rgba8888d24s8ms0",
496					rotation	= "90",
497					surfacewidth	= "256",
498					surfaceheight	= "256",
499					os				= "android",
500					filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
501		Configuration(name			= "rotate-reverse-portrait",
502					glconfig	= "rgba8888d24s8ms0",
503					rotation	= "180",
504					surfacewidth	= "256",
505					surfaceheight	= "256",
506					os				= "android",
507					filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
508		Configuration(name			= "rotate-reverse-landscape",
509					glconfig	= "rgba8888d24s8ms0",
510					rotation	= "270",
511					surfacewidth	= "256",
512					surfaceheight	= "256",
513					os				= "android",
514					filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
515
516		# MSAA
517		Configuration(name			= "multisample",
518					glconfig	= "rgba8888d24s8ms4",
519					rotation	= "unspecified",
520					surfacewidth	= "256",
521					surfaceheight	= "256",
522					filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt")]),
523
524		# Pixel format
525		Configuration(name			= "565-no-depth-no-stencil",
526					glconfig	= "rgb565d0s0ms0",
527					rotation	= "unspecified",
528					surfacewidth	= "256",
529					surfaceheight	= "256",
530					os				= "android",
531					filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt")]),
532	])
533MAIN_GLES31_COMMON_FILTERS             = [
534		include("gles31-master.txt"),
535		exclude("gles31-test-issues.txt"),
536		exclude("gles31-spec-issues.txt")
537	]
538
539MAIN_GLES31_PKG				= Package(module = ES31CTS_MODULE, configurations = [
540		# Master
541		Configuration(name			= "master",
542					glconfig	= "rgba8888d24s8ms0",
543					rotation	= "unspecified",
544					surfacewidth	= "256",
545					surfaceheight	= "256",
546					filters		= MAIN_GLES31_COMMON_FILTERS),
547
548		# Rotations
549		Configuration(name			= "rotate-portrait",
550					glconfig	= "rgba8888d24s8ms0",
551					rotation	= "0",
552					surfacewidth	= "256",
553					surfaceheight	= "256",
554					os				= "android",
555					filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
556		Configuration(name			= "rotate-landscape",
557					glconfig	= "rgba8888d24s8ms0",
558					rotation	= "90",
559					surfacewidth	= "256",
560					surfaceheight	= "256",
561					os				= "android",
562					filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
563		Configuration(name			= "rotate-reverse-portrait",
564					glconfig	= "rgba8888d24s8ms0",
565					rotation	= "180",
566					surfacewidth	= "256",
567					surfaceheight	= "256",
568					os				= "android",
569					filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
570		Configuration(name			= "rotate-reverse-landscape",
571					glconfig	= "rgba8888d24s8ms0",
572					rotation	= "270",
573					surfacewidth	= "256",
574					surfaceheight	= "256",
575					os				= "android",
576					filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
577
578		# MSAA
579		Configuration(name			= "multisample",
580					glconfig	= "rgba8888d24s8ms4",
581					rotation	= "unspecified",
582					surfacewidth	= "256",
583					surfaceheight	= "256",
584					filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")]),
585
586		# Pixel format
587		Configuration(name			= "565-no-depth-no-stencil",
588					glconfig	= "rgb565d0s0ms0",
589					rotation	= "unspecified",
590					surfacewidth	= "256",
591					surfaceheight	= "256",
592					os				= "android",
593					filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")]),
594	])
595
596GLCTS_GLES2_KHR_PKG_1CFG			= Package(module = ES2KHR_MODULE, configurations = [
597		# Master
598		Configuration(name			= "khr-master",
599					surfacewidth	= "64",
600					surfaceheight	= "64",
601					baseseed		= "1",
602					filters			= [include("gles2-khr-master.txt")]),
603	])
604
605GLCTS_GLES2_DEQP_PKG_1CFG			= Package(module = ES2CTS_MODULE, configurations = [
606		# Master
607		Configuration(name			= "deqp-master",
608					surfacewidth	= "64",
609					surfaceheight	= "64",
610					baseseed		= "1",
611					filters			= [include("gles2-deqp-master.txt")]),
612	])
613
614GLCTS_GLES2_GTF_PKG_1CFG			= Package(module = ES2GTF_MODULE, configurations = [
615		# Master
616		Configuration(name			= "gtf-master",
617					surfacewidth	= "64",
618					surfaceheight	= "64",
619					baseseed		= "1",
620					filters			= [include("gles2-gtf-master.txt")]),
621		Configuration(name			= "gtf-master",
622					surfacewidth	= "113",
623					surfaceheight	= "47",
624					baseseed		= "2",
625					filters			= [include("gles2-gtf-master.txt")]),
626		Configuration(name			= "gtf-master",
627					surfacewidth	= "64",
628					surfaceheight	= "-1",
629					baseseed		= "3",
630					fboconfig		= "rgba8888d24s8",
631					filters			= [include("gles2-gtf-master.txt")]),
632		Configuration(name			= "gtf-master",
633					surfacewidth	= "-1",
634					surfaceheight	= "64",
635					baseseed		= "3",
636					fboconfig		= "rgba8888d24s8",
637					filters			= [include("gles2-gtf-master.txt")]),
638		Configuration(name			= "gtf-egl",
639					surfacewidth	= "64",
640					surfaceheight	= "64",
641					baseseed		= "1",
642					filters			= [include("gles2-gtf-egl.txt")]),
643		Configuration(name			= "gtf-egl",
644					surfacewidth	= "113",
645					surfaceheight	= "47",
646					baseseed		= "2",
647					filters			= [include("gles2-gtf-egl.txt")]),
648	])
649
650GLCTS_GLES2_KHR_PKG_N1CFG			= Package(module = ES2KHR_MODULE, useforfirsteglconfig = False, configurations = [
651		# Master
652		Configuration(name			= "khr-master",
653					surfacewidth	= "64",
654					surfaceheight	= "64",
655					baseseed		= "1",
656					filters			= [include("gles2-khr-master.txt")]),
657	])
658
659GLCTS_GLES2_DEQP_PKG_N1CFG			= Package(module = ES2CTS_MODULE, useforfirsteglconfig = False, configurations = [
660		# Master
661		Configuration(name			= "deqp-master",
662					surfacewidth	= "64",
663					surfaceheight	= "64",
664					baseseed		= "1",
665					filters			= [include("gles2-deqp-master.txt")]),
666	])
667
668GLCTS_GLES2_GTF_PKG_N1CFG			= Package(module = ES2GTF_MODULE, useforfirsteglconfig = False, configurations = [
669		# Master
670		Configuration(name			= "gtf-master",
671					surfacewidth	= "64",
672					surfaceheight	= "64",
673					baseseed		= "1",
674					filters		= [include("gles2-gtf-master.txt")]),
675		Configuration(name			= "gtf-master",
676					surfacewidth	= "113",
677					surfaceheight	= "47",
678					baseseed		= "2",
679					filters			= [include("gles2-gtf-master.txt")]),
680	])
681
682GLCTS_GLES3_DEQP_PKG_1CFG			= Package(module = ES3CTS_MODULE, configurations = [
683		# Master
684		Configuration(name			= "deqp-master",
685					surfacewidth	= "64",
686					surfaceheight	= "64",
687					baseseed		= "1",
688					filters			= [include("gles3-deqp-master.txt")]),
689	])
690
691GLCTS_GLES3_KHR_PKG_1CFG			= Package(module = ES3KHR_MODULE, configurations = [
692		# Master
693		Configuration(name			= "khr-master",
694					surfacewidth	= "64",
695					surfaceheight	= "64",
696					baseseed		= "1",
697					filters			= [include("gles3-khr-master.txt")]),
698	])
699
700GLCTS_GLES3_GTF_PKG_1CFG			= Package(module = ES3GTF_MODULE, configurations = [
701		# Master
702		Configuration(name			= "gtf-master",
703					surfacewidth	= "64",
704					surfaceheight	= "64",
705					baseseed		= "1",
706					filters			= [include("gles3-gtf-master.txt")]),
707		Configuration(name			= "gtf-master",
708					surfacewidth	= "113",
709					surfaceheight	= "47",
710					baseseed		= "2",
711					filters			= [include("gles3-gtf-master.txt")]),
712		Configuration(name			= "gtf-master",
713					surfacewidth	= "64",
714					surfaceheight	= "-1",
715					baseseed		= "3",
716					fboconfig		= "rgba8888d24s8",
717					filters			= [include("gles3-gtf-master.txt")]),
718		Configuration(name			= "gtf-master",
719					surfacewidth	= "-1",
720					surfaceheight	= "64",
721					baseseed		= "3",
722					fboconfig		= "rgba8888d24s8",
723					filters			= [include("gles3-gtf-master.txt")]),
724	])
725
726GLCTS_GLES3_DEQP_PKG_N1CFG			= Package(module = ES3CTS_MODULE, useforfirsteglconfig = False, configurations = [
727		# Master
728		Configuration(name			= "deqp-master",
729					surfacewidth	= "64",
730					surfaceheight	= "64",
731					baseseed		= "1",
732					filters			= [include("gles3-deqp-master.txt")]),
733	])
734
735GLCTS_GLES3_KHR_PKG_N1CFG			= Package(module = ES3KHR_MODULE, useforfirsteglconfig = False, configurations = [
736		# Master
737		Configuration(name			= "khr-master",
738					surfacewidth	= "64",
739					surfaceheight	= "64",
740					baseseed		= "1",
741					filters			= [include("gles3-khr-master.txt")]),
742	])
743GLCTS_GLES3_GTF_PKG_N1CFG			= Package(module = ES3GTF_MODULE, useforfirsteglconfig = False, configurations = [
744		# Master
745		Configuration(name			= "gtf-master",
746					surfacewidth	= "64",
747					surfaceheight	= "64",
748					baseseed		= "1",
749					filters			= [include("gles3-gtf-master.txt")]),
750		Configuration(name			= "gtf-master",
751					surfacewidth	= "113",
752					surfaceheight	= "47",
753					baseseed		= "2",
754					filters			= [include("gles3-gtf-master.txt")]),
755	])
756
757GLCTS_GLES31_DEQP_PKG_1CFG			= Package(module = ES31CTS_MODULE, configurations = [
758		# Master
759		Configuration(name			= "deqp-master",
760					surfacewidth	= "64",
761					surfaceheight	= "64",
762					baseseed		= "1",
763					filters			= [include("gles31-deqp-master.txt")]),
764	])
765
766GLCTS_GLES31_KHR_PKG_1CFG			= Package(module = ES31KHR_MODULE, configurations = [
767		# Master
768		Configuration(name			= "khr-master",
769					surfacewidth	= "64",
770					surfaceheight	= "64",
771					baseseed		= "1",
772					filters			= [include("gles31-khr-master.txt")]),
773	])
774
775GLCTS_GLES31_GTF_PKG_1CFG			= Package(module = ES31GTF_MODULE, configurations = [
776		# Master
777		Configuration(name			= "gtf-master",
778					surfacewidth	= "64",
779					surfaceheight	= "64",
780					baseseed		= "1",
781					filters			= [include("gles31-gtf-master.txt")]),
782		Configuration(name			= "gtf-master",
783					surfacewidth	= "113",
784					surfaceheight	= "47",
785					baseseed		= "2",
786					filters			= [include("gles31-gtf-master.txt")]),
787		Configuration(name			= "gtf-master",
788					surfacewidth	= "64",
789					surfaceheight	= "-1",
790					baseseed		= "3",
791					fboconfig		= "rgba8888d24s8",
792					filters			= [include("gles31-gtf-master.txt")]),
793		Configuration(name			= "gtf-master",
794					surfacewidth	= "-1",
795					surfaceheight	= "64",
796					baseseed		= "3",
797					fboconfig		= "rgba8888d24s8",
798					filters			= [include("gles31-gtf-master.txt")]),
799	])
800
801GLCTS_GLES31_KHR_PKG_N1CFG			= Package(module = ES31KHR_MODULE, useforfirsteglconfig = False, configurations = [
802		# Master
803		Configuration(name			= "khr-master",
804					surfacewidth	= "64",
805					surfaceheight	= "64",
806					baseseed		= "1",
807					filters			= [include("gles31-khr-master.txt")]),
808	])
809
810GLCTS_GLES31_DEQP_PKG_N1CFG			= Package(module = ES31CTS_MODULE, useforfirsteglconfig = False, configurations = [
811		# Master
812		Configuration(name			= "deqp-master",
813					surfacewidth	= "64",
814					surfaceheight	= "64",
815					baseseed		= "1",
816					filters			= [include("gles31-deqp-master.txt")]),
817	])
818
819GLCTS_GLES31_GTF_PKG_N1CFG			= Package(module = ES31GTF_MODULE, useforfirsteglconfig = False, configurations = [
820		# Master
821		Configuration(name			= "gtf-master",
822					surfacewidth	= "64",
823					surfaceheight	= "64",
824					baseseed		= "1",
825					filters			= [include("gles31-gtf-master.txt")]),
826		Configuration(name			= "gtf-master",
827					surfacewidth	= "113",
828					surfaceheight	= "47",
829					baseseed		= "2",
830					filters			= [include("gles31-gtf-master.txt")]),
831	])
832
833MAIN_GLES32_COMMON_FILTERS             = [
834		include("gles32-khr-master.txt"),
835		exclude("gles32-khr-test-issues.txt"),
836		exclude("gles32-khr-spec-issues.txt")
837	]
838
839GLCTS_GLES32_KHR_PKG_1CFG			= Package(module = ES32KHR_MODULE, configurations = [
840		# Master
841		Configuration(name			= "khr-master",
842					surfacewidth	= "64",
843					surfaceheight	= "64",
844					baseseed		= "1",
845					filters			= MAIN_GLES32_COMMON_FILTERS),
846		Configuration(name			= "khr-master",
847					surfacewidth	= "113",
848					surfaceheight	= "47",
849					baseseed		= "2",
850					filters			= MAIN_GLES32_COMMON_FILTERS),
851		Configuration(name			= "khr-master",
852					surfacewidth	= "64",
853					surfaceheight	= "-1",
854					baseseed		= "3",
855					fboconfig		= "rgba8888d24s8",
856					filters			= MAIN_GLES32_COMMON_FILTERS),
857		Configuration(name			= "khr-master",
858					surfacewidth	= "-1",
859					surfaceheight	= "64",
860					baseseed		= "3",
861					fboconfig		= "rgba8888d24s8",
862					filters			= MAIN_GLES32_COMMON_FILTERS),
863	])
864
865GLCTS_GLES32_KHR_PKG_N1CFG			= Package(module = ES32KHR_MODULE, useforfirsteglconfig = False, configurations = [
866		# Master
867		Configuration(name			= "khr-master",
868					surfacewidth	= "64",
869					surfaceheight	= "64",
870					baseseed		= "1",
871					filters			= MAIN_GLES32_COMMON_FILTERS),
872		Configuration(name			= "khr-master",
873					surfacewidth	= "113",
874					surfaceheight	= "47",
875					baseseed		= "2",
876					filters			= MAIN_GLES32_COMMON_FILTERS),
877	])
878
879GLCTS_NOCTX_ES2_KHR_PKG			= Package(module = NOCTX_ES2_KHR_MODULE, configurations = [
880		# Master
881		Configuration(name			= "khr-noctx-master",
882					surfacewidth	= "64",
883					surfaceheight	= "64",
884					baseseed		= "1",
885					filters			= [include("gles2-khr-master.txt")]),
886	])
887
888GLCTS_NOCTX_ES32_KHR_PKG		= Package(module = NOCTX_ES32_KHR_MODULE, configurations = [
889		# Master
890		Configuration(name			= "khr-noctx-master",
891					surfacewidth	= "64",
892					surfaceheight	= "64",
893					baseseed		= "1",
894					filters			= MAIN_GLES32_COMMON_FILTERS),
895	])
896
897GLCTS_SINGLE_ES32_KHR_PKG		= Package(module = SINGLE_ES32_KHR_MODULE, configurations = [
898		# Master
899		Configuration(name			= "khr-single",
900					surfacewidth	= "64",
901					surfaceheight	= "64",
902					baseseed		= "1",
903					filters			= [include("gles32-khr-single.txt")]),
904	])
905
906
907ES_MUSTPASS_LISTS		= [
908	# 3.2.2.x
909	Mustpass(project = CTS_KHR_MP_ES_PROJECT,	version = "3.2.2.x", isCurrent=False,
910			packages = [GLCTS_GLES2_KHR_PKG_1CFG,
911						GLCTS_GLES2_DEQP_PKG_1CFG,
912						GLCTS_GLES2_GTF_PKG_1CFG,
913						GLCTS_GLES2_KHR_PKG_N1CFG,
914						GLCTS_GLES2_DEQP_PKG_N1CFG,
915						GLCTS_GLES2_GTF_PKG_N1CFG,
916						GLCTS_GLES3_KHR_PKG_1CFG,
917						GLCTS_GLES3_DEQP_PKG_1CFG,
918						GLCTS_GLES3_GTF_PKG_1CFG,
919						GLCTS_GLES3_KHR_PKG_N1CFG,
920						GLCTS_GLES3_DEQP_PKG_N1CFG,
921						GLCTS_GLES3_GTF_PKG_N1CFG,
922						GLCTS_GLES31_KHR_PKG_1CFG,
923						GLCTS_GLES31_DEQP_PKG_1CFG,
924						GLCTS_GLES31_GTF_PKG_1CFG,
925						GLCTS_GLES31_KHR_PKG_N1CFG,
926						GLCTS_GLES31_DEQP_PKG_N1CFG,
927						GLCTS_GLES31_GTF_PKG_N1CFG,
928						GLCTS_GLES32_KHR_PKG_1CFG,
929						GLCTS_GLES32_KHR_PKG_N1CFG,
930						]),
931
932	Mustpass(project = CTS_AOSP_MP_ES_PROJECT,	version = "3.2.2.x", isCurrent=False,
933			packages = [GLCTS_GLES2_PKG, GLCTS_3_2_2_GLES3_PKG, GLCTS_3_2_2_GLES31_PKG]),
934
935	# 3.2.3.x
936	Mustpass(project = CTS_KHR_MP_ES_PROJECT,	version = "3.2.3.x", isCurrent=False,
937			packages = [GLCTS_GLES2_KHR_PKG_1CFG,
938						GLCTS_GLES2_GTF_PKG_1CFG,
939						GLCTS_GLES2_KHR_PKG_N1CFG,
940						GLCTS_GLES2_GTF_PKG_N1CFG,
941						GLCTS_GLES3_KHR_PKG_1CFG,
942						GLCTS_GLES3_GTF_PKG_1CFG,
943						GLCTS_GLES3_KHR_PKG_N1CFG,
944						GLCTS_GLES3_GTF_PKG_N1CFG,
945						GLCTS_GLES31_KHR_PKG_1CFG,
946						GLCTS_GLES31_GTF_PKG_1CFG,
947						GLCTS_GLES31_KHR_PKG_N1CFG,
948						GLCTS_GLES31_GTF_PKG_N1CFG,
949						GLCTS_3_2_3_GLES32_KHR_PKG_1CFG,
950						GLCTS_3_2_3_GLES32_KHR_PKG_N1CFG,
951						]),
952
953	Mustpass(project = CTS_AOSP_MP_ES_PROJECT, version = "3.2.3.x", isCurrent=False,
954			packages = [GLCTS_3_2_3_GLES2_PKG, GLCTS_3_2_3_GLES3_PKG, GLCTS_3_2_3_GLES31_PKG]),
955
956	Mustpass(project = CTS_AOSP_MP_EGL_PROJECT, version = "3.2.3.x", isCurrent=False,
957			packages = [GLCTS_3_2_3_EGL_PKG]),
958
959	# 3.2.4.x
960	Mustpass(project = CTS_KHR_MP_ES_PROJECT,	version = "3.2.4.x", isCurrent=False,
961			packages = [GLCTS_GLES2_KHR_PKG_1CFG,
962						GLCTS_GLES2_KHR_PKG_N1CFG,
963						GLCTS_GLES3_KHR_PKG_1CFG,
964						GLCTS_GLES3_KHR_PKG_N1CFG,
965						GLCTS_GLES31_KHR_PKG_1CFG,
966						GLCTS_GLES31_KHR_PKG_N1CFG,
967						GLCTS_3_2_3_GLES32_KHR_PKG_1CFG,
968						GLCTS_3_2_3_GLES32_KHR_PKG_N1CFG,
969						]),
970
971
972	Mustpass(project = CTS_KHR_MP_NOCTX_ES_PROJECT, version = "3.2.4.x", isCurrent=False,
973			packages = [GLCTS_NOCTX_ES2_KHR_PKG, GLCTS_NOCTX_ES32_KHR_PKG]),
974
975	Mustpass(project = CTS_AOSP_MP_ES_PROJECT, version = "3.2.4.x", isCurrent=False,
976			packages = [GLCTS_3_2_3_GLES2_PKG, GLCTS_3_2_3_GLES3_PKG, GLCTS_3_2_3_GLES31_PKG]),
977
978	Mustpass(project = CTS_AOSP_MP_EGL_PROJECT, version = "3.2.4.x", isCurrent=False,
979			packages = [GLCTS_3_2_3_EGL_PKG]),
980
981	# 3.2.5.x
982
983	Mustpass(project = CTS_KHR_MP_ES_PROJECT,   version = "3.2.5.x", isCurrent=False,
984			packages = [GLCTS_GLES2_KHR_PKG_1CFG,
985						GLCTS_GLES2_KHR_PKG_N1CFG,
986						GLCTS_GLES3_KHR_PKG_1CFG,
987						GLCTS_GLES3_KHR_PKG_N1CFG,
988						GLCTS_GLES31_KHR_PKG_1CFG,
989						GLCTS_GLES31_KHR_PKG_N1CFG,
990						GLCTS_GLES32_KHR_PKG_1CFG,
991						GLCTS_GLES32_KHR_PKG_N1CFG,
992						]),
993
994	Mustpass(project = CTS_KHR_MP_NOCTX_ES_PROJECT, version = "3.2.5.x", isCurrent=False,
995			packages = [GLCTS_NOCTX_ES2_KHR_PKG, GLCTS_NOCTX_ES32_KHR_PKG]),
996
997	Mustpass(project = CTS_AOSP_MP_ES_PROJECT, version = "3.2.5.x", isCurrent=False,
998			packages = [GLCTS_3_2_3_GLES2_PKG, GLCTS_3_2_3_GLES3_PKG, GLCTS_3_2_3_GLES31_PKG]),
999
1000	Mustpass(project = CTS_AOSP_MP_EGL_PROJECT, version = "3.2.5.x", isCurrent=False,
1001			packages = [GLCTS_3_2_3_EGL_PKG]),
1002
1003	# 3.2.6.x
1004
1005	Mustpass(project = CTS_KHR_MP_ES_PROJECT,   version = "3.2.6.x", isCurrent=False,
1006			packages = [GLCTS_GLES2_KHR_PKG_1CFG,
1007						GLCTS_GLES2_KHR_PKG_N1CFG,
1008						GLCTS_GLES3_KHR_PKG_1CFG,
1009						GLCTS_GLES3_KHR_PKG_N1CFG,
1010						GLCTS_GLES31_KHR_PKG_1CFG,
1011						GLCTS_GLES31_KHR_PKG_N1CFG,
1012						GLCTS_GLES32_KHR_PKG_1CFG,
1013						GLCTS_GLES32_KHR_PKG_N1CFG,
1014						]),
1015
1016	Mustpass(project = CTS_KHR_MP_NOCTX_ES_PROJECT, version = "3.2.6.x", isCurrent=False,
1017			packages = [GLCTS_NOCTX_ES2_KHR_PKG, GLCTS_NOCTX_ES32_KHR_PKG]),
1018
1019	Mustpass(project = CTS_KHR_MP_SINGLE_ES_PROJECT, version = "3.2.6.x", isCurrent=False,
1020			packages = [GLCTS_SINGLE_ES32_KHR_PKG]),
1021
1022	Mustpass(project = CTS_AOSP_MP_ES_PROJECT, version = "3.2.6.x", isCurrent=False,
1023			packages = [GLCTS_3_2_3_GLES2_PKG, GLCTS_3_2_3_GLES3_PKG, GLCTS_3_2_3_GLES31_PKG]),
1024
1025	Mustpass(project = CTS_AOSP_MP_EGL_PROJECT, version = "3.2.6.x", isCurrent=False,
1026			packages = [GLCTS_3_2_3_EGL_PKG]),
1027
1028	# main
1029
1030	Mustpass(project = CTS_KHR_MP_ES_PROJECT,	version = "main", isCurrent=True,
1031			packages = [GLCTS_GLES2_KHR_PKG_1CFG,
1032						GLCTS_GLES2_KHR_PKG_N1CFG,
1033						GLCTS_GLES3_KHR_PKG_1CFG,
1034						GLCTS_GLES3_KHR_PKG_N1CFG,
1035						GLCTS_GLES31_KHR_PKG_1CFG,
1036						GLCTS_GLES31_KHR_PKG_N1CFG,
1037						GLCTS_GLES32_KHR_PKG_1CFG,
1038						GLCTS_GLES32_KHR_PKG_N1CFG,
1039						]),
1040
1041	Mustpass(project = CTS_KHR_MP_NOCTX_ES_PROJECT, version = "main", isCurrent=True,
1042			packages = [GLCTS_NOCTX_ES2_KHR_PKG, GLCTS_NOCTX_ES32_KHR_PKG]),
1043
1044	Mustpass(project = CTS_KHR_MP_SINGLE_ES_PROJECT, version = "main", isCurrent=True,
1045			packages = [GLCTS_SINGLE_ES32_KHR_PKG]),
1046
1047	Mustpass(project = CTS_AOSP_MP_ES_PROJECT, version = "main", isCurrent=True,
1048			packages = [GLCTS_3_2_3_GLES2_PKG, GLCTS_3_2_3_GLES3_PKG, GLCTS_3_2_3_GLES31_PKG]),
1049
1050	Mustpass(project = CTS_AOSP_MP_EGL_PROJECT, version = "main", isCurrent=True,
1051			packages = [GLCTS_3_2_3_EGL_PKG])
1052
1053	]
1054
1055ES_BUILD_CONFIG				= BuildConfig(buildPath, "Debug", ["-DDEQP_TARGET=%s" % DEFAULT_TARGET, "-DGLCTS_GTF_TARGET=gles32"])
1056
1057#-------------------------------------------------- GL MUSTPASS----------------------------------------------------------------------
1058
1059GL_CTS_MP_INC_DIR					= os.path.join(DEQP_DIR, "external", "openglcts", "modules", "runner")
1060
1061GL_CTS_KHR_MP_DATA_DIR				= os.path.join(DEQP_DIR, "external", "openglcts", "data", "mustpass", "gl", "khronos_mustpass")
1062
1063GL_CTS_KHR_MP_DEVICE_DIR			= "gl_cts/data/mustpass/gl/khronos_mustpass"
1064
1065GL_CTS_KHR_MP_PROJECT				= Project(name = "Khronos Mustpass GL", path = GL_CTS_KHR_MP_DATA_DIR, incpath = GL_CTS_MP_INC_DIR, devicepath = GL_CTS_KHR_MP_DEVICE_DIR, copyright = COPYRIGHT_DECLARATION)
1066
1067GL_CTS_KHR_MP_NOCTX_DATA_DIR		= os.path.join(DEQP_DIR, "external", "openglcts", "data", "mustpass", "gl", "khronos_mustpass_noctx")
1068
1069GL_CTS_KHR_MP_NOCTX_DEVICE_DIR		= "gl_cts/data/mustpass/gl/khronos_mustpass_noctx"
1070
1071GL_CTS_NOCTX_PROJECT				= Project(name = "Khronos Mustpass GL NoContext", path = GL_CTS_KHR_MP_NOCTX_DATA_DIR, incpath = GL_CTS_MP_INC_DIR, devicepath = GL_CTS_KHR_MP_NOCTX_DEVICE_DIR, copyright = COPYRIGHT_DECLARATION)
1072
1073GL_CTS_KHR_MP_SINGLE_DATA_DIR		= os.path.join(DEQP_DIR, "external", "openglcts", "data", "mustpass", "gl", "khronos_mustpass_single")
1074
1075GL_CTS_KHR_MP_SINGLE_DEVICE_DIR		= "gl_cts/data/mustpass/gl/khronos_mustpass_single"
1076
1077GL_CTS_KHR_SINGLE_PROJECT			= Project(name = "Khronos Mustpass GL Single Config", path = GL_CTS_KHR_MP_SINGLE_DATA_DIR, incpath = GL_CTS_MP_INC_DIR, devicepath = GL_CTS_KHR_MP_SINGLE_DEVICE_DIR, copyright = COPYRIGHT_DECLARATION)
1078
1079GL_CTS_KHR_MP_GLES_DATA_DIR			= os.path.join(DEQP_DIR, "external", "openglcts", "data", "mustpass", "gl", "aosp_mustpass")
1080
1081GL_CTS_KHR_MP_GLES_DEVICE_DIR		= "gl_cts/data/mustpass/gl/aosp_mustpass"
1082
1083GL_CTS_GLES_PROJECT					= Project(name = "Khronos Mustpass AOSP for GL", path = GL_CTS_KHR_MP_GLES_DATA_DIR, incpath = GL_CTS_MP_INC_DIR, devicepath = GL_CTS_KHR_MP_GLES_DEVICE_DIR, copyright = COPYRIGHT_DECLARATION)
1084
1085
1086GL_MODULES							= OrderedDict([
1087			('KHR-GL46',		['master',		[include('gl46-master.txt'), exclude('gl46-test-issues.txt')]]),
1088			('KHR-GL45',		['master',		[include('gl45-master.txt'), exclude('gl45-test-issues.txt')]]),
1089			('KHR-GL44',		['master',		[include('gl44-master.txt'), exclude('gl44-test-issues.txt')]]),
1090			('KHR-GL43',		['master',		[include('gl43-master.txt'), exclude('gl43-test-issues.txt')]]),
1091			('KHR-GL42',		['master',		[include('gl42-master.txt'), exclude('gl42-test-issues.txt')]]),
1092			('KHR-GL42-COMPAT',	['master',		[include('gl42-compat-master.txt')]]),
1093			('KHR-GL41',		['master',		[include('gl41-master.txt'), exclude('gl41-test-issues.txt')]]),
1094			('KHR-GL40',		['master',		[include('gl40-master.txt'), exclude('gl40-test-issues.txt')]]),
1095			('KHR-GL33',		['master',		[include('gl33-master.txt'), exclude('gl33-test-issues.txt')]]),
1096			('KHR-GL32',		['master',		[include('gl32-master.txt'), exclude('gl32-test-issues.txt')]]),
1097			('KHR-GL31',		['master',		[include('gl31-master.txt'), exclude('gl31-test-issues.txt')]]),
1098			('KHR-GL30',		['master',		[include('gl30-master.txt'), exclude('gl30-test-issues.txt')]]),
1099			('GTF-GL46',		['gtf-master',	[include('gl46-gtf-master.txt')]]),
1100			('GTF-GL45',		['gtf-master',	[include('gl45-gtf-master.txt')]]),
1101			('GTF-GL44',		['gtf-master',	[include('gl44-gtf-master.txt')]]),
1102			('GTF-GL43',		['gtf-master',	[include('gl43-gtf-master.txt')]]),
1103			('GTF-GL42',		['gtf-master',	[include('gl42-gtf-master.txt')]]),
1104			('GTF-GL41',		['gtf-master',	[include('gl41-gtf-master.txt')]]),
1105			('GTF-GL40',		['gtf-master',	[include('gl40-gtf-master.txt')]]),
1106			('GTF-GL33',		['gtf-master',	[include('gl33-gtf-master.txt')]]),
1107			('GTF-GL32',		['gtf-master',	[include('gl32-gtf-master.txt')]]),
1108			('GTF-GL31',		['gtf-master',	[include('gl31-gtf-master.txt')]]),
1109			('GTF-GL30',		['gtf-master',	[include('gl30-gtf-master.txt')]])
1110		])
1111
1112NOCTX_GL30_KHR_MODULE			= getModuleByName("KHR-NOCTX-GL30")
1113NOCTX_GL40_KHR_MODULE			= getModuleByName("KHR-NOCTX-GL40")
1114NOCTX_GL43_KHR_MODULE			= getModuleByName("KHR-NOCTX-GL43")
1115NOCTX_GL45_KHR_MODULE			= getModuleByName("KHR-NOCTX-GL45")
1116SINGLE_GL43_KHR_MODULE			= getModuleByName("KHR-Single-GL43")
1117SINGLE_GL44_KHR_MODULE			= getModuleByName("KHR-Single-GL44")
1118SINGLE_GL45_KHR_MODULE			= getModuleByName("KHR-Single-GL45")
1119SINGLE_GL46_KHR_MODULE			= getModuleByName("KHR-Single-GL46")
1120
1121GLCTS_NOCTX_GL30_KHR_PKG			= Package(module = NOCTX_GL30_KHR_MODULE, configurations = [
1122		# Master
1123		Configuration(name			= "khr-master",
1124					surfacewidth	= "64",
1125					surfaceheight	= "64",
1126					baseseed		= "1",
1127					filters			= [include("gl30-khr-master.txt")]),
1128	])
1129
1130GLCTS_NOCTX_GL40_KHR_PKG			= Package(module = NOCTX_GL40_KHR_MODULE, configurations = [
1131		# Master
1132		Configuration(name			= "khr-master",
1133					surfacewidth	= "64",
1134					surfaceheight	= "64",
1135					baseseed		= "1",
1136					filters			= [include("gl40-khr-master.txt")]),
1137	])
1138
1139GLCTS_NOCTX_GL43_KHR_PKG			= Package(module = NOCTX_GL43_KHR_MODULE, configurations = [
1140		# Master
1141		Configuration(name			= "khr-master",
1142					surfacewidth	= "64",
1143					surfaceheight	= "64",
1144					baseseed		= "1",
1145					filters			= [include("gl43-khr-master.txt")]),
1146	])
1147
1148GLCTS_NOCTX_GL45_KHR_PKG			= Package(module = NOCTX_GL45_KHR_MODULE, configurations = [
1149		# Master
1150		Configuration(name			= "khr-master",
1151					surfacewidth	= "64",
1152					surfaceheight	= "64",
1153					baseseed		= "1",
1154					filters			= [include("gl45-khr-master.txt")]),
1155	])
1156
1157GLCTS_SINGLE_GL43_KHR_PKG			= Package(module = SINGLE_GL43_KHR_MODULE, configurations = [
1158		# Master
1159		Configuration(name			= "khr-single",
1160					surfacewidth	= "64",
1161					surfaceheight	= "64",
1162					baseseed		= "1",
1163					filters			= [include("gl43-khr-single.txt")]),
1164	])
1165
1166GLCTS_SINGLE_GL44_KHR_PKG			= Package(module = SINGLE_GL44_KHR_MODULE, configurations = [
1167		# Master
1168		Configuration(name			= "khr-single",
1169					surfacewidth	= "64",
1170					surfaceheight	= "64",
1171					baseseed		= "1",
1172					filters			= [include("gl44-khr-single.txt")]),
1173	])
1174
1175GLCTS_SINGLE_GL45_KHR_PKG			= Package(module = SINGLE_GL45_KHR_MODULE, configurations = [
1176		# Master
1177		Configuration(name			= "khr-single",
1178					surfacewidth	= "64",
1179					surfaceheight	= "64",
1180					baseseed		= "1",
1181					filters			= [include("gl45-khr-single.txt")]),
1182	])
1183
1184GLCTS_SINGLE_GL46_KHR_PKG			= Package(module = SINGLE_GL46_KHR_MODULE, configurations = [
1185		# Master
1186		Configuration(name			= "khr-single",
1187					surfacewidth	= "64",
1188					surfaceheight	= "64",
1189					baseseed		= "1",
1190					filters			= [include("gl46-khr-single.txt")]),
1191	])
1192
1193MAIN_GL_ES3_PKG						= Package(module = GL45ES3_MODULE, configurations = [
1194		# Master
1195		Configuration(name			= "es3-master",
1196					  glconfig		= "rgba8888d24s8ms0",
1197					  rotation		= "unspecified",
1198					  surfacewidth	= "256",
1199					  surfaceheight	= "256",
1200					  filters		= [include("gl45es3-master.txt"), exclude("gl45es3-test-issues.txt"), exclude("gl45es3-spec-issues.txt")])
1201	])
1202
1203MAIN_GL_ES31_PKG					= Package(module = GL45ES31_MODULE, configurations = [
1204		# Master
1205		Configuration(name			= "es31-master",
1206					  glconfig		= "rgba8888d24s8ms0",
1207					  rotation		= "unspecified",
1208					  surfacewidth	= "256",
1209					  surfaceheight	= "256",
1210					  filters		= [include("gl45es31-master.txt"), exclude("gl45es31-test-issues.txt"), exclude("gl45es31-spec-issues.txt")])
1211	])
1212
1213def generateGLMustpass():
1214		gl_packages = []
1215		for packageName in GL_MODULES:
1216			cfgName			= GL_MODULES[packageName][0]
1217			cfgFilter		= GL_MODULES[packageName][1]
1218			config_w64xh64	= Configuration(name = cfgName, surfacewidth = "64", surfaceheight = "64", baseseed = "1", filters = cfgFilter)
1219			config_w113xh47	= Configuration(name = cfgName, surfacewidth = "113", surfaceheight = "47", baseseed = "2", filters = cfgFilter)
1220			config_w64		= Configuration(name = cfgName, surfacewidth = "64", surfaceheight = "-1", baseseed = "3", fboconfig = "rgba8888d24s8", filters = cfgFilter)
1221			config_h64		= Configuration(name = cfgName, surfacewidth = "-1", surfaceheight = "64", baseseed = "3", fboconfig = "rgba8888d24s8", filters = cfgFilter)
1222
1223			pkgModule		= getModuleByName(packageName)
1224			pkg0			= Package(module = pkgModule,
1225										useforfirsteglconfig = True,
1226										configurations = [
1227											config_w64xh64, config_w113xh47, config_w64, config_h64
1228										]
1229									)
1230			pkg1			= Package(module = pkgModule,
1231										useforfirsteglconfig = False,
1232										configurations = [
1233											config_w64xh64, config_w113xh47,
1234										]
1235									)
1236			gl_packages.append(pkg0)
1237			gl_packages.append(pkg1)
1238
1239		mustpass = [Mustpass(project = GL_CTS_KHR_MP_PROJECT, version = "4.6.0.x", isCurrent=False, packages = gl_packages),
1240					Mustpass(project = GL_CTS_NOCTX_PROJECT, version = "4.6.0.x", isCurrent=False, packages = [GLCTS_NOCTX_GL30_KHR_PKG, GLCTS_NOCTX_GL40_KHR_PKG, GLCTS_NOCTX_GL43_KHR_PKG, GLCTS_NOCTX_GL45_KHR_PKG]),
1241
1242					Mustpass(project = GL_CTS_KHR_MP_PROJECT, version = "4.6.1.x", isCurrent=False, packages = gl_packages),
1243					Mustpass(project = GL_CTS_NOCTX_PROJECT, version = "4.6.1.x", isCurrent=False, packages = [GLCTS_NOCTX_GL30_KHR_PKG, GLCTS_NOCTX_GL40_KHR_PKG, GLCTS_NOCTX_GL43_KHR_PKG, GLCTS_NOCTX_GL45_KHR_PKG]),
1244					Mustpass(project = GL_CTS_KHR_SINGLE_PROJECT, version = "4.6.1.x", isCurrent=False, packages = [GLCTS_SINGLE_GL43_KHR_PKG, GLCTS_SINGLE_GL44_KHR_PKG, GLCTS_SINGLE_GL45_KHR_PKG, GLCTS_SINGLE_GL46_KHR_PKG]),
1245					Mustpass(project = GL_CTS_GLES_PROJECT, version = "4.6.1.x", isCurrent=False, packages = [MAIN_GL_ES3_PKG, MAIN_GL_ES31_PKG]),
1246
1247					Mustpass(project = GL_CTS_KHR_MP_PROJECT, version = "main", isCurrent=True, packages = gl_packages),
1248					Mustpass(project = GL_CTS_NOCTX_PROJECT, version = "main", isCurrent=True, packages = [GLCTS_NOCTX_GL30_KHR_PKG, GLCTS_NOCTX_GL40_KHR_PKG, GLCTS_NOCTX_GL43_KHR_PKG, GLCTS_NOCTX_GL45_KHR_PKG]),
1249					Mustpass(project = GL_CTS_KHR_SINGLE_PROJECT, version = "main", isCurrent=True, packages = [GLCTS_SINGLE_GL43_KHR_PKG, GLCTS_SINGLE_GL44_KHR_PKG, GLCTS_SINGLE_GL45_KHR_PKG, GLCTS_SINGLE_GL46_KHR_PKG]),
1250					Mustpass(project = GL_CTS_GLES_PROJECT, version = "main", isCurrent=True, packages = [MAIN_GL_ES3_PKG, MAIN_GL_ES31_PKG]),
1251					]
1252		return mustpass
1253
1254GL_BUILD_CONFIG					= BuildConfig(buildPath, "Debug", ["-DDEQP_TARGET=%s" % DEFAULT_TARGET, "-DGLCTS_GTF_TARGET=gl"])
1255
1256if __name__ == "__main__":
1257	gtfCMakeLists = os.path.join(DEQP_DIR, "external", "kc-cts", "src", "GTF_ES", "CMakeLists.txt")
1258	if os.path.isfile(gtfCMakeLists) == False:
1259		raise Exception("GTF sources not found. GTF module is required to build the mustpass files. 'cd external && python fetch_kc_cts.py'")
1260	genMustpassLists(ES_MUSTPASS_LISTS, ANY_GENERATOR, ES_BUILD_CONFIG)
1261	gl_mustpass_lists = generateGLMustpass()
1262	genMustpassLists(gl_mustpass_lists, ANY_GENERATOR, GL_BUILD_CONFIG)
1263