Fix missing dependency on sparse binds
[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 ctsbuild.common import DEQP_DIR
24 from ctsbuild.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 VULKANSC_MODULE                                 = getModuleByName("dEQP-VKSC")
56
57 # Main
58
59 MAIN_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 MAIN_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
98 MAIN_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         ]
104 MAIN_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
137 MAIN_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         ]
146 MAIN_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
227 MAIN_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         ]
236 MAIN_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
311 MAIN_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         ]
319 MAIN_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
348 MAIN_VULKANSC_FILTERS                   = [
349                 include("vksc-master.txt"),
350         ]
351 MAIN_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
359 MUSTPASS_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
363 if __name__ == "__main__":
364         genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs())