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