• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# -*- coding: utf-8 -*-
2
3#-------------------------------------------------------------------------
4# drawElements Quality Program utilities
5# --------------------------------------
6#
7# Copyright 2015 The Android Open Source Project
8#
9# Licensed under the Apache License, Version 2.0 (the "License");
10# you may not use this file except in compliance with the License.
11# You may obtain a copy of the License at
12#
13#      http://www.apache.org/licenses/LICENSE-2.0
14#
15# Unless required by applicable law or agreed to in writing, software
16# distributed under the License is distributed on an "AS IS" BASIS,
17# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18# See the License for the specific language governing permissions and
19# limitations under the License.
20#
21#-------------------------------------------------------------------------
22
23from build.common import DEQP_DIR
24from build.config import ANY_GENERATOR
25from build_caselists import Module, getModuleByName, getBuildConfig, DEFAULT_BUILD_DIR, DEFAULT_TARGET
26from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists, parseBuildConfigFromCmdLineArgs
27
28import os
29
30COPYRIGHT_DECLARATION = """
31     Copyright (C) 2016 The Android Open Source Project
32
33     Licensed under the Apache License, Version 2.0 (the "License");
34     you may not use this file except in compliance with the License.
35     You may obtain a copy of the License at
36
37          http://www.apache.org/licenses/LICENSE-2.0
38
39     Unless required by applicable law or agreed to in writing, software
40     distributed under the License is distributed on an "AS IS" BASIS,
41     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
42     See the License for the specific language governing permissions and
43     limitations under the License.
44     """
45
46CTS_DATA_DIR					= os.path.join(DEQP_DIR, "android", "cts")
47
48CTS_PROJECT						= Project(path = CTS_DATA_DIR, copyright = COPYRIGHT_DECLARATION)
49
50EGL_MODULE						= getModuleByName("dEQP-EGL")
51GLES2_MODULE					= getModuleByName("dEQP-GLES2")
52GLES3_MODULE					= getModuleByName("dEQP-GLES3")
53GLES31_MODULE					= getModuleByName("dEQP-GLES31")
54VULKAN_MODULE					= getModuleByName("dEQP-VK")
55
56# Lollipop
57
58LMP_GLES3_PKG					= Package(module = GLES3_MODULE, configurations = [
59		Configuration(name			= "master",
60					  glconfig		= "rgba8888d24s8ms0",
61					  rotation		= "unspecified",
62					  surfacetype	= "window",
63					  filters		= [include("es30-lmp.txt")]),
64	])
65LMP_GLES31_PKG					= Package(module = GLES31_MODULE, configurations = [
66		Configuration(name			= "master",
67					  glconfig		= "rgba8888d24s8ms0",
68					  rotation		= "unspecified",
69					  surfacetype	= "window",
70					  filters		= [include("es31-lmp.txt")]),
71	])
72
73# Lollipop MR1
74
75LMP_MR1_GLES3_PKG				= Package(module = GLES3_MODULE, configurations = [
76		Configuration(name			= "master",
77					  glconfig		= "rgba8888d24s8ms0",
78					  rotation		= "unspecified",
79					  surfacetype	= "window",
80					  filters		= [include("es30-lmp-mr1.txt")]),
81	])
82LMP_MR1_GLES31_PKG				= Package(module = GLES31_MODULE, configurations = [
83		Configuration(name			= "master",
84					  glconfig		= "rgba8888d24s8ms0",
85					  rotation		= "unspecified",
86					  surfacetype	= "window",
87					  filters		= [include("es31-lmp-mr1.txt")]),
88	])
89
90# Marshmallow
91
92MNC_EGL_PKG						= Package(module = EGL_MODULE, configurations = [
93		# Master
94		Configuration(name			= "master",
95					  glconfig		= "rgba8888d24s8ms0",
96					  rotation		= "unspecified",
97					  surfacetype	= "window",
98					  filters		= [include("egl-master.txt")]),
99	])
100MNC_GLES2_PKG					= Package(module = GLES2_MODULE, configurations = [
101		# Master
102		Configuration(name			= "master",
103					  glconfig		= "rgba8888d24s8ms0",
104					  rotation		= "unspecified",
105					  surfacetype	= "window",
106					  filters		= [include("gles2-master.txt")]),
107	])
108MNC_GLES3_PKG					= Package(module = GLES3_MODULE, configurations = [
109		# Master
110		Configuration(name			= "master",
111					  glconfig		= "rgba8888d24s8ms0",
112					  rotation		= "unspecified",
113					  surfacetype	= "window",
114					  filters		= [include("gles3-master.txt")]),
115		# Rotations
116		Configuration(name			= "rotate-portrait",
117					  glconfig		= "rgba8888d24s8ms0",
118					  rotation		= "0",
119					  surfacetype	= "window",
120					  filters		= [include("gles3-master.txt"), include("gles3-rotation.txt")]),
121		Configuration(name			= "rotate-landscape",
122					  glconfig		= "rgba8888d24s8ms0",
123					  rotation		= "90",
124					  surfacetype	= "window",
125					  filters		= [include("gles3-master.txt"), include("gles3-rotation.txt")]),
126		Configuration(name			= "rotate-reverse-portrait",
127					  glconfig		= "rgba8888d24s8ms0",
128					  rotation		= "180",
129					  surfacetype	= "window",
130					  filters		= [include("gles3-master.txt"), include("gles3-rotation.txt")]),
131		Configuration(name			= "rotate-reverse-landscape",
132					  glconfig		= "rgba8888d24s8ms0",
133					  rotation		= "270",
134					  surfacetype	= "window",
135					  filters		= [include("gles3-master.txt"), include("gles3-rotation.txt")]),
136
137		# MSAA
138		Configuration(name			= "multisample",
139					  glconfig		= "rgba8888d24s8ms4",
140					  rotation		= "unspecified",
141					  surfacetype	= "window",
142					  filters		= [include("gles3-master.txt"),
143									   include("gles3-multisample.txt"),
144									   exclude("gles3-multisample-issues.txt")]),
145
146		# Pixel format
147		Configuration(name			= "565-no-depth-no-stencil",
148					  glconfig		= "rgb565d0s0ms0",
149					  rotation		= "unspecified",
150					  surfacetype	= "window",
151					  filters		= [include("gles3-master.txt"),
152									   include("gles3-pixelformat.txt"),
153									   exclude("gles3-pixelformat-issues.txt")]),
154	])
155MNC_GLES31_PKG					= Package(module = GLES31_MODULE, configurations = [
156		# Master
157		Configuration(name			= "master",
158					  glconfig		= "rgba8888d24s8ms0",
159					  rotation		= "unspecified",
160					  surfacetype	= "window",
161					  filters		= [include("gles31-master.txt")]),
162
163		# Rotations
164		Configuration(name			= "rotate-portrait",
165					  glconfig		= "rgba8888d24s8ms0",
166					  rotation		= "0",
167					  surfacetype	= "window",
168					  filters		= [include("gles31-master.txt"), include("gles31-rotation.txt")]),
169		Configuration(name			= "rotate-landscape",
170					  glconfig		= "rgba8888d24s8ms0",
171					  rotation		= "90",
172					  surfacetype	= "window",
173					  filters		= [include("gles31-master.txt"), include("gles31-rotation.txt")]),
174		Configuration(name			= "rotate-reverse-portrait",
175					  glconfig		= "rgba8888d24s8ms0",
176					  rotation		= "180",
177					  surfacetype	= "window",
178					  filters		= [include("gles31-master.txt"), include("gles31-rotation.txt")]),
179		Configuration(name			= "rotate-reverse-landscape",
180					  glconfig		= "rgba8888d24s8ms0",
181					  rotation		= "270",
182					  surfacetype	= "window",
183					  filters		= [include("gles31-master.txt"), include("gles31-rotation.txt")]),
184
185		# MSAA
186		Configuration(name			= "multisample",
187					  glconfig		= "rgba8888d24s8ms4",
188					  rotation		= "unspecified",
189					  surfacetype	= "window",
190					  filters		= [include("gles31-master.txt"), include("gles31-multisample.txt")]),
191
192		# Pixel format
193		Configuration(name			= "565-no-depth-no-stencil",
194					  glconfig		= "rgb565d0s0ms0",
195					  rotation		= "unspecified",
196					  surfacetype	= "window",
197					  filters		= [include("gles31-master.txt"), include("gles31-pixelformat.txt")]),
198	])
199
200# NYC
201
202NYC_EGL_COMMON_FILTERS			= [include("egl-master.txt")]
203NYC_EGL_PKG						= Package(module = EGL_MODULE, configurations = [
204		# Master
205		Configuration(name			= "master",
206					  glconfig		= "rgba8888d24s8ms0",
207					  rotation		= "unspecified",
208					  surfacetype	= "window",
209					  filters		= NYC_EGL_COMMON_FILTERS,
210				      runtime		= "11m"),
211	])
212
213NYC_GLES2_COMMON_FILTERS			= [
214		include("gles2-master.txt")
215	]
216NYC_GLES2_PKG					= Package(module = GLES2_MODULE, configurations = [
217		# Master
218		Configuration(name			= "master",
219					  glconfig		= "rgba8888d24s8ms0",
220					  rotation		= "unspecified",
221					  surfacetype	= "window",
222					  filters		= NYC_GLES2_COMMON_FILTERS,
223					  runtime		= "30m"),
224	])
225
226NYC_GLES3_COMMON_FILTERS		= [
227		include("gles3-master.txt")
228	]
229NYC_GLES3_PKG					= Package(module = GLES3_MODULE, configurations = [
230		# Master
231		Configuration(name			= "master",
232					  glconfig		= "rgba8888d24s8ms0",
233					  rotation		= "unspecified",
234					  surfacetype	= "window",
235					  filters		= NYC_GLES3_COMMON_FILTERS,
236					  runtime		= "1h50min"),
237		# Rotations
238		Configuration(name			= "rotate-portrait",
239					  glconfig		= "rgba8888d24s8ms0",
240					  rotation		= "0",
241					  surfacetype	= "window",
242					  filters		= NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
243					  runtime		= "5m"),
244		Configuration(name			= "rotate-landscape",
245					  glconfig		= "rgba8888d24s8ms0",
246					  rotation		= "90",
247					  surfacetype	= "window",
248					  filters		= NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
249					  runtime		= "5m"),
250		Configuration(name			= "rotate-reverse-portrait",
251					  glconfig		= "rgba8888d24s8ms0",
252					  rotation		= "180",
253					  surfacetype	= "window",
254					  filters		= NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
255					  runtime		= "5m"),
256		Configuration(name			= "rotate-reverse-landscape",
257					  glconfig		= "rgba8888d24s8ms0",
258					  rotation		= "270",
259					  surfacetype	= "window",
260					  filters		= NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
261					  runtime		= "5m"),
262
263		# MSAA
264		Configuration(name			= "multisample",
265					  glconfig		= "rgba8888d24s8ms4",
266					  rotation		= "unspecified",
267					  surfacetype	= "window",
268					  filters		= NYC_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt")],
269					  runtime		= "10m"),
270
271		# Pixel format
272		Configuration(name			= "565-no-depth-no-stencil",
273					  glconfig		= "rgb565d0s0ms0",
274					  rotation		= "unspecified",
275					  surfacetype	= "window",
276					  filters		= NYC_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt")],
277					  runtime		= "10m"),
278	])
279
280NYC_GLES31_COMMON_FILTERS		= [
281		include("gles31-master.txt")
282	]
283NYC_GLES31_PKG					= Package(module = GLES31_MODULE, configurations = [
284		# Master
285		Configuration(name			= "master",
286					  glconfig		= "rgba8888d24s8ms0",
287					  rotation		= "unspecified",
288					  surfacetype	= "window",
289					  filters		= NYC_GLES31_COMMON_FILTERS,
290					  runtime		= "4h40m"),
291
292		# Rotations
293		Configuration(name			= "rotate-portrait",
294					  glconfig		= "rgba8888d24s8ms0",
295					  rotation		= "0",
296					  surfacetype	= "window",
297					  filters		= NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
298					  runtime		= "1m30s"),
299		Configuration(name			= "rotate-landscape",
300					  glconfig		= "rgba8888d24s8ms0",
301					  rotation		= "90",
302					  surfacetype	= "window",
303					  filters		= NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
304					  runtime		= "1m30s"),
305		Configuration(name			= "rotate-reverse-portrait",
306					  glconfig		= "rgba8888d24s8ms0",
307					  rotation		= "180",
308					  surfacetype	= "window",
309					  filters		= NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
310					  runtime		= "1m30s"),
311		Configuration(name			= "rotate-reverse-landscape",
312					  glconfig		= "rgba8888d24s8ms0",
313					  rotation		= "270",
314					  surfacetype	= "window",
315					  filters		= NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
316					  runtime		= "1m30s"),
317
318		# MSAA
319		Configuration(name			= "multisample",
320					  glconfig		= "rgba8888d24s8ms4",
321					  rotation		= "unspecified",
322					  surfacetype	= "window",
323					  filters		= NYC_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
324					  runtime		= "2m"),
325
326		# Pixel format
327		Configuration(name			= "565-no-depth-no-stencil",
328					  glconfig		= "rgb565d0s0ms0",
329					  rotation		= "unspecified",
330					  surfacetype	= "window",
331					  filters		= NYC_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
332					  runtime		= "1m"),
333	])
334
335NYC_VULKAN_FILTERS				= [
336		include("vk-master.txt")
337	]
338NYC_VULKAN_PKG					= Package(module = VULKAN_MODULE, configurations = [
339		Configuration(name			= "master",
340					  filters		= NYC_VULKAN_FILTERS,
341					  runtime		= "1h11m"),
342	])
343
344# Master
345
346MASTER_EGL_COMMON_FILTERS		= [include("egl-master.txt"),
347								   exclude("egl-test-issues.txt"),
348								   exclude("egl-internal-api-tests.txt"),
349								   exclude("egl-manual-robustness.txt"),
350								   exclude("egl-driver-issues.txt")]
351MASTER_EGL_PKG					= Package(module = EGL_MODULE, configurations = [
352		# Master
353		Configuration(name			= "master",
354					  glconfig		= "rgba8888d24s8ms0",
355					  rotation		= "unspecified",
356					  surfacetype	= "window",
357					  required		= True,
358					  filters		= MASTER_EGL_COMMON_FILTERS,
359				      runtime		= "23m"),
360	])
361
362MASTER_GLES2_COMMON_FILTERS		= [
363		include("gles2-master.txt"),
364		exclude("gles2-test-issues.txt"),
365		exclude("gles2-failures.txt")
366	]
367MASTER_GLES2_PKG				= Package(module = GLES2_MODULE, configurations = [
368		# Master
369		Configuration(name			= "master",
370					  glconfig		= "rgba8888d24s8ms0",
371					  rotation		= "unspecified",
372					  surfacetype	= "window",
373					  required		= True,
374					  filters		= MASTER_GLES2_COMMON_FILTERS,
375					  runtime		= "46m"),
376	])
377
378MASTER_GLES3_COMMON_FILTERS		= [
379		include("gles3-master.txt"),
380		exclude("gles3-hw-issues.txt"),
381		exclude("gles3-driver-issues.txt"),
382		exclude("gles3-test-issues.txt"),
383		exclude("gles3-spec-issues.txt")
384	]
385MASTER_GLES3_PKG				= Package(module = GLES3_MODULE, configurations = [
386		# Master
387		Configuration(name			= "master",
388					  glconfig		= "rgba8888d24s8ms0",
389					  rotation		= "unspecified",
390					  surfacetype	= "window",
391					  required		= True,
392					  filters		= MASTER_GLES3_COMMON_FILTERS,
393					  runtime		= "1h50m"),
394		# Rotations
395		Configuration(name			= "rotate-portrait",
396					  glconfig		= "rgba8888d24s8ms0",
397					  rotation		= "0",
398					  surfacetype	= "window",
399					  filters		= MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
400					  runtime		= "1m"),
401		Configuration(name			= "rotate-landscape",
402					  glconfig		= "rgba8888d24s8ms0",
403					  rotation		= "90",
404					  surfacetype	= "window",
405					  filters		= MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
406					  runtime		= "1m"),
407		Configuration(name			= "rotate-reverse-portrait",
408					  glconfig		= "rgba8888d24s8ms0",
409					  rotation		= "180",
410					  surfacetype	= "window",
411					  filters		= MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
412					  runtime		= "1m"),
413		Configuration(name			= "rotate-reverse-landscape",
414					  glconfig		= "rgba8888d24s8ms0",
415					  rotation		= "270",
416					  surfacetype	= "window",
417					  filters		= MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
418					  runtime		= "1m"),
419
420		# MSAA
421		Configuration(name			= "multisample",
422					  glconfig		= "rgba8888d24s8ms4",
423					  rotation		= "unspecified",
424					  surfacetype	= "window",
425					  filters		= MASTER_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"),
426																	 exclude("gles3-multisample-issues.txt")],
427					  runtime		= "1m"),
428
429		# Pixel format
430		Configuration(name			= "565-no-depth-no-stencil",
431					  glconfig		= "rgb565d0s0ms0",
432					  rotation		= "unspecified",
433					  surfacetype	= "window",
434					  filters		= MASTER_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"),
435																	 exclude("gles3-pixelformat-issues.txt")],
436					  runtime		= "1m"),
437	])
438
439MASTER_GLES31_COMMON_FILTERS	= [
440		include("gles31-master.txt"),
441		exclude("gles31-hw-issues.txt"),
442		exclude("gles31-driver-issues.txt"),
443		exclude("gles31-test-issues.txt"),
444		exclude("gles31-spec-issues.txt"),
445	]
446MASTER_GLES31_PKG				= Package(module = GLES31_MODULE, configurations = [
447		# Master
448		Configuration(name			= "master",
449					  glconfig		= "rgba8888d24s8ms0",
450					  rotation		= "unspecified",
451					  surfacetype	= "window",
452					  required		= True,
453					  filters		= MASTER_GLES31_COMMON_FILTERS,
454					  runtime		= "1h40m"),
455
456		# Rotations
457		Configuration(name			= "rotate-portrait",
458					  glconfig		= "rgba8888d24s8ms0",
459					  rotation		= "0",
460					  surfacetype	= "window",
461					  filters		= MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
462					  runtime		= "1m30s"),
463		Configuration(name			= "rotate-landscape",
464					  glconfig		= "rgba8888d24s8ms0",
465					  rotation		= "90",
466					  surfacetype	= "window",
467					  filters		= MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
468					  runtime		= "1m30s"),
469		Configuration(name			= "rotate-reverse-portrait",
470					  glconfig		= "rgba8888d24s8ms0",
471					  rotation		= "180",
472					  surfacetype	= "window",
473					  filters		= MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
474					  runtime		= "1m30s"),
475		Configuration(name			= "rotate-reverse-landscape",
476					  glconfig		= "rgba8888d24s8ms0",
477					  rotation		= "270",
478					  surfacetype	= "window",
479					  filters		= MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
480					  runtime		= "1m30s"),
481
482		# MSAA
483		Configuration(name			= "multisample",
484					  glconfig		= "rgba8888d24s8ms4",
485					  rotation		= "unspecified",
486					  surfacetype	= "window",
487					  filters		= MASTER_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
488					  runtime		= "2m"),
489
490		# Pixel format
491		Configuration(name			= "565-no-depth-no-stencil",
492					  glconfig		= "rgb565d0s0ms0",
493					  rotation		= "unspecified",
494					  surfacetype	= "window",
495					  filters		= MASTER_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
496					  runtime		= "1m"),
497	])
498
499MASTER_VULKAN_FILTERS			= [
500		include("vk-master.txt"),
501		exclude("vk-not-applicable.txt"),
502		exclude("vk-excluded-tests.txt"),
503		exclude("vk-test-issues.txt"),
504		exclude("vk-waivers.txt"),
505	]
506MASTER_VULKAN_PKG				= Package(module = VULKAN_MODULE, configurations = [
507		Configuration(name			= "master",
508					  filters		= MASTER_VULKAN_FILTERS,
509					  runtime		= "2h29m"),
510	])
511
512MUSTPASS_LISTS				= [
513		Mustpass(project = CTS_PROJECT, version = "lmp",		packages = [LMP_GLES3_PKG, LMP_GLES31_PKG]),
514		Mustpass(project = CTS_PROJECT, version = "lmp-mr1",	packages = [LMP_MR1_GLES3_PKG, LMP_MR1_GLES31_PKG]),
515		Mustpass(project = CTS_PROJECT, version = "mnc",		packages = [MNC_EGL_PKG, MNC_GLES2_PKG, MNC_GLES3_PKG, MNC_GLES31_PKG]),
516		Mustpass(project = CTS_PROJECT, version = "nyc",		packages = [NYC_EGL_PKG, NYC_GLES2_PKG, NYC_GLES3_PKG, NYC_GLES31_PKG, NYC_VULKAN_PKG]),
517		Mustpass(project = CTS_PROJECT, version = "master",		packages = [MASTER_EGL_PKG, MASTER_GLES2_PKG, MASTER_GLES3_PKG, MASTER_GLES31_PKG, MASTER_VULKAN_PKG])
518	]
519
520if __name__ == "__main__":
521	genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs())
522