• 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 ctsbuild.common import DEQP_DIR
24from ctsbuild.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")
55VULKANSC_MODULE					= getModuleByName("dEQP-VKSC")
56
57# Main
58
59MAIN_EGL_COMMON_FILTERS		= [include("egl-master.txt"),
60								   exclude("egl-test-issues.txt"),
61								   exclude("egl-manual-robustness.txt"),
62								   exclude("egl-driver-issues.txt"),
63								   exclude("egl-temp-excluded.txt")]
64MAIN_EGL_PKG					= Package(module = EGL_MODULE, configurations = [
65		# Main
66		Configuration(name			= "master",
67					  glconfig		= "rgba8888d24s8ms0",
68					  rotation		= "unspecified",
69					  surfacetype	= "window",
70					  required		= True,
71					  filters		= MAIN_EGL_COMMON_FILTERS,
72					  runtime		= "23m",
73					  runByDefault	= False),
74		Configuration(name			= "master-2020-03-01",
75					  glconfig		= "rgba8888d24s8ms0",
76					  rotation		= "unspecified",
77					  surfacetype	= "window",
78					  required		= True,
79					  filters		= [include("egl-master-2020-03-01.txt")],
80					  runtime		= "23m"),
81		Configuration(name			= "master-2022-03-01",
82					  glconfig		= "rgba8888d24s8ms0",
83					  rotation		= "unspecified",
84					  surfacetype	= "window",
85					  required		= True,
86					  filters		= MAIN_EGL_COMMON_FILTERS + [exclude("egl-master-2021-03-01.txt")],
87					  runtime		= "5m"),
88		# Risky subset
89		Configuration(name			= "master-risky",
90					  glconfig		= "rgba8888d24s8ms0",
91					  rotation		= "unspecified",
92					  surfacetype	= "window",
93					  required		= True,
94					  filters		= [include("egl-temp-excluded.txt")],
95					  runtime		= "2m"),
96	])
97
98MAIN_GLES2_COMMON_FILTERS		= [
99		include("gles2-master.txt"),
100		exclude("gles2-test-issues.txt"),
101		exclude("gles2-failures.txt"),
102		exclude("gles2-temp-excluded.txt"),
103	]
104MAIN_GLES2_PKG				= Package(module = GLES2_MODULE, configurations = [
105		# Main
106		Configuration(name			= "master",
107					  glconfig		= "rgba8888d24s8ms0",
108					  rotation		= "unspecified",
109					  surfacetype	= "window",
110					  required		= True,
111					  filters		= MAIN_GLES2_COMMON_FILTERS,
112					  runtime		= "46m",
113					  runByDefault		= False),
114		Configuration(name			= "master-2020-03-01",
115					  glconfig		= "rgba8888d24s8ms0",
116					  rotation		= "unspecified",
117					  surfacetype	= "window",
118					  required		= True,
119					  filters		= [include("gles2-master-2020-03-01.txt")],
120					  runtime		= "46m"),
121		Configuration(name			= "master-2021-03-01",
122					  glconfig		= "rgba8888d24s8ms0",
123					  rotation		= "unspecified",
124					  surfacetype	= "window",
125					  required		= True,
126					  filters		= [include("gles2-master-2021-03-01.txt")],
127					  runtime		= "10m"),
128		Configuration(name			= "master-2022-03-01",
129					  glconfig		= "rgba8888d24s8ms0",
130					  rotation		= "unspecified",
131					  surfacetype	= "window",
132					  required		= True,
133					  filters		= MAIN_GLES2_COMMON_FILTERS + [exclude("gles2-master-2020-03-01.txt"), exclude("gles2-master-2021-03-01.txt")],
134					  runtime		= "10m"),
135	])
136
137MAIN_GLES3_COMMON_FILTERS		= [
138		include("gles3-master.txt"),
139		exclude("gles3-hw-issues.txt"),
140		exclude("gles3-driver-issues.txt"),
141		exclude("gles3-test-issues.txt"),
142		exclude("gles3-spec-issues.txt"),
143		exclude("gles3-temp-excluded.txt"),
144		exclude("gles3-waivers.txt"),
145	]
146MAIN_GLES3_PKG				= Package(module = GLES3_MODULE, configurations = [
147		# Main
148		Configuration(name			= "master",
149					  glconfig		= "rgba8888d24s8ms0",
150					  rotation		= "unspecified",
151					  surfacetype	= "window",
152					  required		= True,
153					  filters		= MAIN_GLES3_COMMON_FILTERS,
154					  runtime		= "1h50m",
155					  runByDefault	= False),
156		Configuration(name			= "master-2020-03-01",
157					  glconfig		= "rgba8888d24s8ms0",
158					  rotation		= "unspecified",
159					  surfacetype	= "window",
160					  required		= True,
161					  filters		= [include("gles3-master-2020-03-01.txt")],
162					  runtime		= "1h50m"),
163		Configuration(name			= "master-2021-03-01",
164					  glconfig		= "rgba8888d24s8ms0",
165					  rotation		= "unspecified",
166					  surfacetype	= "window",
167					  required		= True,
168					  filters		= [include("gles3-master-2021-03-01.txt")],
169					  runtime		= "10m"),
170		Configuration(name			= "master-2022-03-01",
171					  glconfig		= "rgba8888d24s8ms0",
172					  rotation		= "unspecified",
173					  surfacetype	= "window",
174					  required		= True,
175					  filters		= MAIN_GLES3_COMMON_FILTERS + [exclude("gles3-master-2020-03-01.txt"), exclude("gles3-master-2021-03-01.txt")],
176					  runtime		= "10m"),
177		# Rotations
178		Configuration(name			= "rotate-portrait",
179					  glconfig		= "rgba8888d24s8ms0",
180					  rotation		= "0",
181					  surfacetype	= "window",
182					  filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
183					  runtime		= "1m"),
184		Configuration(name			= "rotate-landscape",
185					  glconfig		= "rgba8888d24s8ms0",
186					  rotation		= "90",
187					  surfacetype	= "window",
188					  filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
189					  runtime		= "1m"),
190		Configuration(name			= "rotate-reverse-portrait",
191					  glconfig		= "rgba8888d24s8ms0",
192					  rotation		= "180",
193					  surfacetype	= "window",
194					  filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
195					  runtime		= "1m"),
196		Configuration(name			= "rotate-reverse-landscape",
197					  glconfig		= "rgba8888d24s8ms0",
198					  rotation		= "270",
199					  surfacetype	= "window",
200					  filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
201					  runtime		= "1m"),
202
203		# MSAA
204		Configuration(name			= "multisample",
205					  glconfig		= "rgba8888d24s8ms4",
206					  rotation		= "unspecified",
207					  surfacetype	= "window",
208					  filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"),
209																	 exclude("gles3-multisample-issues.txt")],
210					  runtime		= "1m"),
211
212		# Pixel format
213		Configuration(name			= "565-no-depth-no-stencil",
214					  glconfig		= "rgb565d0s0ms0",
215					  rotation		= "unspecified",
216					  surfacetype	= "window",
217					  filters		= MAIN_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"),
218																	 exclude("gles3-pixelformat-issues.txt")],
219					  runtime		= "1m"),
220		# Incremental dEQP
221		Configuration(name			= "incremental-deqp",
222					  filters		= [include("gles3-incremental-deqp.txt")],
223					  runtime		= "5m",
224					  runByDefault	= False),
225	])
226
227MAIN_GLES31_COMMON_FILTERS	= [
228		include("gles31-master.txt"),
229		exclude("gles31-hw-issues.txt"),
230		exclude("gles31-driver-issues.txt"),
231		exclude("gles31-test-issues.txt"),
232		exclude("gles31-spec-issues.txt"),
233		exclude("gles31-temp-excluded.txt"),
234		exclude("gles31-waivers.txt"),
235	]
236MAIN_GLES31_PKG				= Package(module = GLES31_MODULE, configurations = [
237		# Main
238		Configuration(name			= "master",
239					  glconfig		= "rgba8888d24s8ms0",
240					  rotation		= "unspecified",
241					  surfacetype	= "window",
242					  required		= True,
243					  filters		= MAIN_GLES31_COMMON_FILTERS,
244					  runtime		= "1h40m",
245					  runByDefault		= False),
246		Configuration(name			= "master-2020-03-01",
247					  glconfig		= "rgba8888d24s8ms0",
248					  rotation		= "unspecified",
249					  surfacetype	= "window",
250					  required		= True,
251					  filters		= [include("gles31-master-2020-03-01.txt")],
252					  runtime		= "1h40m"),
253		Configuration(name			= "master-2021-03-01",
254					  glconfig		= "rgba8888d24s8ms0",
255					  rotation		= "unspecified",
256					  surfacetype	= "window",
257					  required		= True,
258					  filters		= [include("gles31-master-2021-03-01.txt")],
259					  runtime		= "10m"),
260		Configuration(name			= "master-2022-03-01",
261					  glconfig		= "rgba8888d24s8ms0",
262					  rotation		= "unspecified",
263					  surfacetype	= "window",
264					  required		= True,
265					  filters		= MAIN_GLES31_COMMON_FILTERS + [exclude("gles31-master-2020-03-01.txt"), exclude("gles31-master-2021-03-01.txt")],
266					  runtime		= "10m"),
267
268		# Rotations
269		Configuration(name			= "rotate-portrait",
270					  glconfig		= "rgba8888d24s8ms0",
271					  rotation		= "0",
272					  surfacetype	= "window",
273					  filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
274					  runtime		= "1m30s"),
275		Configuration(name			= "rotate-landscape",
276					  glconfig		= "rgba8888d24s8ms0",
277					  rotation		= "90",
278					  surfacetype	= "window",
279					  filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
280					  runtime		= "1m30s"),
281		Configuration(name			= "rotate-reverse-portrait",
282					  glconfig		= "rgba8888d24s8ms0",
283					  rotation		= "180",
284					  surfacetype	= "window",
285					  filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
286					  runtime		= "1m30s"),
287		Configuration(name			= "rotate-reverse-landscape",
288					  glconfig		= "rgba8888d24s8ms0",
289					  rotation		= "270",
290					  surfacetype	= "window",
291					  filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
292					  runtime		= "1m30s"),
293
294		# MSAA
295		Configuration(name			= "multisample",
296					  glconfig		= "rgba8888d24s8ms4",
297					  rotation		= "unspecified",
298					  surfacetype	= "window",
299					  filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
300					  runtime		= "2m"),
301
302		# Pixel format
303		Configuration(name			= "565-no-depth-no-stencil",
304					  glconfig		= "rgb565d0s0ms0",
305					  rotation		= "unspecified",
306					  surfacetype	= "window",
307					  filters		= MAIN_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
308					  runtime		= "1m"),
309	])
310
311MAIN_VULKAN_FILTERS			= [
312		include("vk-master.txt"),
313		exclude("vk-not-applicable.txt"),
314		exclude("vk-excluded-tests.txt"),
315		exclude("vk-test-issues.txt"),
316		exclude("vk-waivers.txt"),
317		exclude("vk-temp-excluded.txt"),
318	]
319MAIN_VULKAN_PKG				= Package(module = VULKAN_MODULE, configurations = [
320		Configuration(name					= "master",
321					  filters				= MAIN_VULKAN_FILTERS,
322					  runtime				= "2h39m",
323					  runByDefault			= False,
324					  listOfGroupsToSplit	= ["dEQP-VK", "dEQP-VK.pipeline"]),
325		Configuration(name					= "master-2019-03-01",
326					  filters				= [include("vk-master-2019-03-01.txt")],
327					  runtime				= "2h29m",
328					  listOfGroupsToSplit	= ["dEQP-VK"]),
329		Configuration(name					= "master-2020-03-01",
330					  filters				= [include("vk-master-2020-03-01.txt")],
331					  runtime				= "2h29m",
332					  listOfGroupsToSplit	= ["dEQP-VK"]),
333		Configuration(name					= "master-2021-03-01",
334					  filters				= [include("vk-master-2021-03-01.txt")],
335					  runtime				= "2h29m",
336					  listOfGroupsToSplit	= ["dEQP-VK"]),
337		Configuration(name					= "master-2022-03-01",
338					  filters				= MAIN_VULKAN_FILTERS + [exclude("vk-master-2019-03-01.txt"), exclude("vk-master-2020-03-01.txt"), exclude("vk-master-2021-03-01.txt")],
339					  runtime				= "10m",
340					  listOfGroupsToSplit	= ["dEQP-VK"]),
341		Configuration(name					= "incremental-deqp",
342					  filters				= [include("vk-incremental-deqp.txt")],
343					  runtime				= "5m",
344					  runByDefault			= False,
345					  listOfGroupsToSplit	= ["dEQP-VK"]),
346	])
347
348MAIN_VULKANSC_FILTERS			= [
349		include("vksc-master.txt"),
350	]
351MAIN_VULKANSC_PKG				= Package(module = VULKANSC_MODULE, configurations = [
352		Configuration(name					= "main",
353					  filters				= MAIN_VULKANSC_FILTERS,
354					  runtime				= "2h39m",
355					  runByDefault			= False,
356					  listOfGroupsToSplit	= ["dEQP-VKSC"]),
357	])
358
359MUSTPASS_LISTS				= [
360		Mustpass(project = CTS_PROJECT, version = "main",		packages = [MAIN_EGL_PKG, MAIN_GLES2_PKG, MAIN_GLES3_PKG, MAIN_GLES31_PKG, MAIN_VULKAN_PKG, MAIN_VULKANSC_PKG])
361	]
362
363if __name__ == "__main__":
364	genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs())
365