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