Merge vk-gl-cts/vulkan-cts-1.3.0 into vk-gl-cts/vulkan-cts-1.3.1
[platform/upstream/VK-GL-CTS.git] / scripts / build_android_mustpass.py
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
23 from build.common import DEQP_DIR
24 from build.config import ANY_GENERATOR
25 from build_caselists import Module, getModuleByName, getBuildConfig, DEFAULT_BUILD_DIR, DEFAULT_TARGET
26 from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists, parseBuildConfigFromCmdLineArgs
27
28 import os
29
30 COPYRIGHT_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
46 CTS_DATA_DIR                                    = os.path.join(DEQP_DIR, "android", "cts")
47
48 CTS_PROJECT                                             = Project(path = CTS_DATA_DIR, copyright = COPYRIGHT_DECLARATION)
49
50 EGL_MODULE                                              = getModuleByName("dEQP-EGL")
51 GLES2_MODULE                                    = getModuleByName("dEQP-GLES2")
52 GLES3_MODULE                                    = getModuleByName("dEQP-GLES3")
53 GLES31_MODULE                                   = getModuleByName("dEQP-GLES31")
54 VULKAN_MODULE                                   = getModuleByName("dEQP-VK")
55
56 # Master
57
58 MASTER_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")]
63 MASTER_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
97 MASTER_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         ]
103 MASTER_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
136 MASTER_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         ]
145 MASTER_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
226 MASTER_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         ]
235 MASTER_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
310 MASTER_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         ]
318 MASTER_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
347 MUSTPASS_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
351 if __name__ == "__main__":
352         genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs())