Vulkan: Add wide-color tests
[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 # Lollipop
57
58 LMP_GLES3_PKG                                   = Package(module = GLES3_MODULE, configurations = [
59                 Configuration(name                      = "master",
60                                           glconfig              = "rgba8888d24s8ms0",
61                                           rotation              = "unspecified",
62                                           surfacetype   = "window",
63                                           filters               = [include("es30-lmp.txt")]),
64         ])
65 LMP_GLES31_PKG                                  = Package(module = GLES31_MODULE, configurations = [
66                 Configuration(name                      = "master",
67                                           glconfig              = "rgba8888d24s8ms0",
68                                           rotation              = "unspecified",
69                                           surfacetype   = "window",
70                                           filters               = [include("es31-lmp.txt")]),
71         ])
72
73 # Lollipop MR1
74
75 LMP_MR1_GLES3_PKG                               = Package(module = GLES3_MODULE, configurations = [
76                 Configuration(name                      = "master",
77                                           glconfig              = "rgba8888d24s8ms0",
78                                           rotation              = "unspecified",
79                                           surfacetype   = "window",
80                                           filters               = [include("es30-lmp-mr1.txt")]),
81         ])
82 LMP_MR1_GLES31_PKG                              = Package(module = GLES31_MODULE, configurations = [
83                 Configuration(name                      = "master",
84                                           glconfig              = "rgba8888d24s8ms0",
85                                           rotation              = "unspecified",
86                                           surfacetype   = "window",
87                                           filters               = [include("es31-lmp-mr1.txt")]),
88         ])
89
90 # Marshmallow
91
92 MNC_EGL_PKG                                             = Package(module = EGL_MODULE, configurations = [
93                 # Master
94                 Configuration(name                      = "master",
95                                           glconfig              = "rgba8888d24s8ms0",
96                                           rotation              = "unspecified",
97                                           surfacetype   = "window",
98                                           filters               = [include("egl-master.txt")]),
99         ])
100 MNC_GLES2_PKG                                   = Package(module = GLES2_MODULE, configurations = [
101                 # Master
102                 Configuration(name                      = "master",
103                                           glconfig              = "rgba8888d24s8ms0",
104                                           rotation              = "unspecified",
105                                           surfacetype   = "window",
106                                           filters               = [include("gles2-master.txt")]),
107         ])
108 MNC_GLES3_PKG                                   = Package(module = GLES3_MODULE, configurations = [
109                 # Master
110                 Configuration(name                      = "master",
111                                           glconfig              = "rgba8888d24s8ms0",
112                                           rotation              = "unspecified",
113                                           surfacetype   = "window",
114                                           filters               = [include("gles3-master.txt")]),
115                 # Rotations
116                 Configuration(name                      = "rotate-portrait",
117                                           glconfig              = "rgba8888d24s8ms0",
118                                           rotation              = "0",
119                                           surfacetype   = "window",
120                                           filters               = [include("gles3-master.txt"), include("gles3-rotation.txt")]),
121                 Configuration(name                      = "rotate-landscape",
122                                           glconfig              = "rgba8888d24s8ms0",
123                                           rotation              = "90",
124                                           surfacetype   = "window",
125                                           filters               = [include("gles3-master.txt"), include("gles3-rotation.txt")]),
126                 Configuration(name                      = "rotate-reverse-portrait",
127                                           glconfig              = "rgba8888d24s8ms0",
128                                           rotation              = "180",
129                                           surfacetype   = "window",
130                                           filters               = [include("gles3-master.txt"), include("gles3-rotation.txt")]),
131                 Configuration(name                      = "rotate-reverse-landscape",
132                                           glconfig              = "rgba8888d24s8ms0",
133                                           rotation              = "270",
134                                           surfacetype   = "window",
135                                           filters               = [include("gles3-master.txt"), include("gles3-rotation.txt")]),
136
137                 # MSAA
138                 Configuration(name                      = "multisample",
139                                           glconfig              = "rgba8888d24s8ms4",
140                                           rotation              = "unspecified",
141                                           surfacetype   = "window",
142                                           filters               = [include("gles3-master.txt"),
143                                                                            include("gles3-multisample.txt"),
144                                                                            exclude("gles3-multisample-issues.txt")]),
145
146                 # Pixel format
147                 Configuration(name                      = "565-no-depth-no-stencil",
148                                           glconfig              = "rgb565d0s0ms0",
149                                           rotation              = "unspecified",
150                                           surfacetype   = "window",
151                                           filters               = [include("gles3-master.txt"),
152                                                                            include("gles3-pixelformat.txt"),
153                                                                            exclude("gles3-pixelformat-issues.txt")]),
154         ])
155 MNC_GLES31_PKG                                  = Package(module = GLES31_MODULE, configurations = [
156                 # Master
157                 Configuration(name                      = "master",
158                                           glconfig              = "rgba8888d24s8ms0",
159                                           rotation              = "unspecified",
160                                           surfacetype   = "window",
161                                           filters               = [include("gles31-master.txt")]),
162
163                 # Rotations
164                 Configuration(name                      = "rotate-portrait",
165                                           glconfig              = "rgba8888d24s8ms0",
166                                           rotation              = "0",
167                                           surfacetype   = "window",
168                                           filters               = [include("gles31-master.txt"), include("gles31-rotation.txt")]),
169                 Configuration(name                      = "rotate-landscape",
170                                           glconfig              = "rgba8888d24s8ms0",
171                                           rotation              = "90",
172                                           surfacetype   = "window",
173                                           filters               = [include("gles31-master.txt"), include("gles31-rotation.txt")]),
174                 Configuration(name                      = "rotate-reverse-portrait",
175                                           glconfig              = "rgba8888d24s8ms0",
176                                           rotation              = "180",
177                                           surfacetype   = "window",
178                                           filters               = [include("gles31-master.txt"), include("gles31-rotation.txt")]),
179                 Configuration(name                      = "rotate-reverse-landscape",
180                                           glconfig              = "rgba8888d24s8ms0",
181                                           rotation              = "270",
182                                           surfacetype   = "window",
183                                           filters               = [include("gles31-master.txt"), include("gles31-rotation.txt")]),
184
185                 # MSAA
186                 Configuration(name                      = "multisample",
187                                           glconfig              = "rgba8888d24s8ms4",
188                                           rotation              = "unspecified",
189                                           surfacetype   = "window",
190                                           filters               = [include("gles31-master.txt"), include("gles31-multisample.txt")]),
191
192                 # Pixel format
193                 Configuration(name                      = "565-no-depth-no-stencil",
194                                           glconfig              = "rgb565d0s0ms0",
195                                           rotation              = "unspecified",
196                                           surfacetype   = "window",
197                                           filters               = [include("gles31-master.txt"), include("gles31-pixelformat.txt")]),
198         ])
199
200 # NYC
201
202 NYC_EGL_COMMON_FILTERS                  = [include("egl-master.txt")]
203 NYC_EGL_PKG                                             = Package(module = EGL_MODULE, configurations = [
204                 # Master
205                 Configuration(name                      = "master",
206                                           glconfig              = "rgba8888d24s8ms0",
207                                           rotation              = "unspecified",
208                                           surfacetype   = "window",
209                                           filters               = NYC_EGL_COMMON_FILTERS,
210                                       runtime           = "11m"),
211         ])
212
213 NYC_GLES2_COMMON_FILTERS                        = [
214                 include("gles2-master.txt")
215         ]
216 NYC_GLES2_PKG                                   = Package(module = GLES2_MODULE, configurations = [
217                 # Master
218                 Configuration(name                      = "master",
219                                           glconfig              = "rgba8888d24s8ms0",
220                                           rotation              = "unspecified",
221                                           surfacetype   = "window",
222                                           filters               = NYC_GLES2_COMMON_FILTERS,
223                                           runtime               = "30m"),
224         ])
225
226 NYC_GLES3_COMMON_FILTERS                = [
227                 include("gles3-master.txt")
228         ]
229 NYC_GLES3_PKG                                   = Package(module = GLES3_MODULE, configurations = [
230                 # Master
231                 Configuration(name                      = "master",
232                                           glconfig              = "rgba8888d24s8ms0",
233                                           rotation              = "unspecified",
234                                           surfacetype   = "window",
235                                           filters               = NYC_GLES3_COMMON_FILTERS,
236                                           runtime               = "1h50min"),
237                 # Rotations
238                 Configuration(name                      = "rotate-portrait",
239                                           glconfig              = "rgba8888d24s8ms0",
240                                           rotation              = "0",
241                                           surfacetype   = "window",
242                                           filters               = NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
243                                           runtime               = "5m"),
244                 Configuration(name                      = "rotate-landscape",
245                                           glconfig              = "rgba8888d24s8ms0",
246                                           rotation              = "90",
247                                           surfacetype   = "window",
248                                           filters               = NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
249                                           runtime               = "5m"),
250                 Configuration(name                      = "rotate-reverse-portrait",
251                                           glconfig              = "rgba8888d24s8ms0",
252                                           rotation              = "180",
253                                           surfacetype   = "window",
254                                           filters               = NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
255                                           runtime               = "5m"),
256                 Configuration(name                      = "rotate-reverse-landscape",
257                                           glconfig              = "rgba8888d24s8ms0",
258                                           rotation              = "270",
259                                           surfacetype   = "window",
260                                           filters               = NYC_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
261                                           runtime               = "5m"),
262
263                 # MSAA
264                 Configuration(name                      = "multisample",
265                                           glconfig              = "rgba8888d24s8ms4",
266                                           rotation              = "unspecified",
267                                           surfacetype   = "window",
268                                           filters               = NYC_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt")],
269                                           runtime               = "10m"),
270
271                 # Pixel format
272                 Configuration(name                      = "565-no-depth-no-stencil",
273                                           glconfig              = "rgb565d0s0ms0",
274                                           rotation              = "unspecified",
275                                           surfacetype   = "window",
276                                           filters               = NYC_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt")],
277                                           runtime               = "10m"),
278         ])
279
280 NYC_GLES31_COMMON_FILTERS               = [
281                 include("gles31-master.txt")
282         ]
283 NYC_GLES31_PKG                                  = Package(module = GLES31_MODULE, configurations = [
284                 # Master
285                 Configuration(name                      = "master",
286                                           glconfig              = "rgba8888d24s8ms0",
287                                           rotation              = "unspecified",
288                                           surfacetype   = "window",
289                                           filters               = NYC_GLES31_COMMON_FILTERS,
290                                           runtime               = "4h40m"),
291
292                 # Rotations
293                 Configuration(name                      = "rotate-portrait",
294                                           glconfig              = "rgba8888d24s8ms0",
295                                           rotation              = "0",
296                                           surfacetype   = "window",
297                                           filters               = NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
298                                           runtime               = "1m30s"),
299                 Configuration(name                      = "rotate-landscape",
300                                           glconfig              = "rgba8888d24s8ms0",
301                                           rotation              = "90",
302                                           surfacetype   = "window",
303                                           filters               = NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
304                                           runtime               = "1m30s"),
305                 Configuration(name                      = "rotate-reverse-portrait",
306                                           glconfig              = "rgba8888d24s8ms0",
307                                           rotation              = "180",
308                                           surfacetype   = "window",
309                                           filters               = NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
310                                           runtime               = "1m30s"),
311                 Configuration(name                      = "rotate-reverse-landscape",
312                                           glconfig              = "rgba8888d24s8ms0",
313                                           rotation              = "270",
314                                           surfacetype   = "window",
315                                           filters               = NYC_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
316                                           runtime               = "1m30s"),
317
318                 # MSAA
319                 Configuration(name                      = "multisample",
320                                           glconfig              = "rgba8888d24s8ms4",
321                                           rotation              = "unspecified",
322                                           surfacetype   = "window",
323                                           filters               = NYC_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
324                                           runtime               = "2m"),
325
326                 # Pixel format
327                 Configuration(name                      = "565-no-depth-no-stencil",
328                                           glconfig              = "rgb565d0s0ms0",
329                                           rotation              = "unspecified",
330                                           surfacetype   = "window",
331                                           filters               = NYC_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
332                                           runtime               = "1m"),
333         ])
334
335 NYC_VULKAN_FILTERS                              = [
336                 include("vk-master.txt")
337         ]
338 NYC_VULKAN_PKG                                  = Package(module = VULKAN_MODULE, configurations = [
339                 Configuration(name                      = "master",
340                                           filters               = NYC_VULKAN_FILTERS,
341                                           runtime               = "1h11m"),
342         ])
343
344 # Master
345
346 MASTER_EGL_COMMON_FILTERS               = [include("egl-master.txt"),
347                                                                    exclude("egl-test-issues.txt"),
348                                                                    exclude("egl-internal-api-tests.txt"),
349                                                                    exclude("egl-manual-robustness.txt"),
350                                                                    exclude("egl-driver-issues.txt")]
351 MASTER_EGL_PKG                                  = Package(module = EGL_MODULE, configurations = [
352                 # Master
353                 Configuration(name                      = "master",
354                                           glconfig              = "rgba8888d24s8ms0",
355                                           rotation              = "unspecified",
356                                           surfacetype   = "window",
357                                           required              = True,
358                                           filters               = MASTER_EGL_COMMON_FILTERS,
359                                       runtime           = "23m"),
360         ])
361
362 MASTER_GLES2_COMMON_FILTERS             = [
363                 include("gles2-master.txt"),
364                 exclude("gles2-test-issues.txt"),
365                 exclude("gles2-failures.txt")
366         ]
367 MASTER_GLES2_PKG                                = Package(module = GLES2_MODULE, configurations = [
368                 # Master
369                 Configuration(name                      = "master",
370                                           glconfig              = "rgba8888d24s8ms0",
371                                           rotation              = "unspecified",
372                                           surfacetype   = "window",
373                                           required              = True,
374                                           filters               = MASTER_GLES2_COMMON_FILTERS,
375                                           runtime               = "46m"),
376         ])
377
378 MASTER_GLES3_COMMON_FILTERS             = [
379                 include("gles3-master.txt"),
380                 exclude("gles3-hw-issues.txt"),
381                 exclude("gles3-driver-issues.txt"),
382                 exclude("gles3-test-issues.txt"),
383                 exclude("gles3-spec-issues.txt")
384         ]
385 MASTER_GLES3_PKG                                = Package(module = GLES3_MODULE, configurations = [
386                 # Master
387                 Configuration(name                      = "master",
388                                           glconfig              = "rgba8888d24s8ms0",
389                                           rotation              = "unspecified",
390                                           surfacetype   = "window",
391                                           required              = True,
392                                           filters               = MASTER_GLES3_COMMON_FILTERS,
393                                           runtime               = "1h50m"),
394                 # Rotations
395                 Configuration(name                      = "rotate-portrait",
396                                           glconfig              = "rgba8888d24s8ms0",
397                                           rotation              = "0",
398                                           surfacetype   = "window",
399                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
400                                           runtime               = "1m"),
401                 Configuration(name                      = "rotate-landscape",
402                                           glconfig              = "rgba8888d24s8ms0",
403                                           rotation              = "90",
404                                           surfacetype   = "window",
405                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
406                                           runtime               = "1m"),
407                 Configuration(name                      = "rotate-reverse-portrait",
408                                           glconfig              = "rgba8888d24s8ms0",
409                                           rotation              = "180",
410                                           surfacetype   = "window",
411                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
412                                           runtime               = "1m"),
413                 Configuration(name                      = "rotate-reverse-landscape",
414                                           glconfig              = "rgba8888d24s8ms0",
415                                           rotation              = "270",
416                                           surfacetype   = "window",
417                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
418                                           runtime               = "1m"),
419
420                 # MSAA
421                 Configuration(name                      = "multisample",
422                                           glconfig              = "rgba8888d24s8ms4",
423                                           rotation              = "unspecified",
424                                           surfacetype   = "window",
425                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"),
426                                                                                                                                          exclude("gles3-multisample-issues.txt")],
427                                           runtime               = "1m"),
428
429                 # Pixel format
430                 Configuration(name                      = "565-no-depth-no-stencil",
431                                           glconfig              = "rgb565d0s0ms0",
432                                           rotation              = "unspecified",
433                                           surfacetype   = "window",
434                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"),
435                                                                                                                                          exclude("gles3-pixelformat-issues.txt")],
436                                           runtime               = "1m"),
437         ])
438
439 MASTER_GLES31_COMMON_FILTERS    = [
440                 include("gles31-master.txt"),
441                 exclude("gles31-hw-issues.txt"),
442                 exclude("gles31-driver-issues.txt"),
443                 exclude("gles31-test-issues.txt"),
444                 exclude("gles31-spec-issues.txt")
445         ]
446 MASTER_GLES31_PKG                               = Package(module = GLES31_MODULE, configurations = [
447                 # Master
448                 Configuration(name                      = "master",
449                                           glconfig              = "rgba8888d24s8ms0",
450                                           rotation              = "unspecified",
451                                           surfacetype   = "window",
452                                           required              = True,
453                                           filters               = MASTER_GLES31_COMMON_FILTERS,
454                                           runtime               = "1h40m"),
455
456                 # Rotations
457                 Configuration(name                      = "rotate-portrait",
458                                           glconfig              = "rgba8888d24s8ms0",
459                                           rotation              = "0",
460                                           surfacetype   = "window",
461                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
462                                           runtime               = "1m30s"),
463                 Configuration(name                      = "rotate-landscape",
464                                           glconfig              = "rgba8888d24s8ms0",
465                                           rotation              = "90",
466                                           surfacetype   = "window",
467                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
468                                           runtime               = "1m30s"),
469                 Configuration(name                      = "rotate-reverse-portrait",
470                                           glconfig              = "rgba8888d24s8ms0",
471                                           rotation              = "180",
472                                           surfacetype   = "window",
473                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
474                                           runtime               = "1m30s"),
475                 Configuration(name                      = "rotate-reverse-landscape",
476                                           glconfig              = "rgba8888d24s8ms0",
477                                           rotation              = "270",
478                                           surfacetype   = "window",
479                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
480                                           runtime               = "1m30s"),
481
482                 # MSAA
483                 Configuration(name                      = "multisample",
484                                           glconfig              = "rgba8888d24s8ms4",
485                                           rotation              = "unspecified",
486                                           surfacetype   = "window",
487                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
488                                           runtime               = "2m"),
489
490                 # Pixel format
491                 Configuration(name                      = "565-no-depth-no-stencil",
492                                           glconfig              = "rgb565d0s0ms0",
493                                           rotation              = "unspecified",
494                                           surfacetype   = "window",
495                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
496                                           runtime               = "1m"),
497         ])
498
499 MASTER_VULKAN_FILTERS                   = [
500                 include("vk-master.txt"),
501                 exclude("vk-not-applicable.txt"),
502                 exclude("vk-excluded-tests.txt"),
503                 exclude("vk-test-issues.txt"),
504                 exclude("vk-waivers.txt"),
505         ]
506 MASTER_VULKAN_PKG                               = Package(module = VULKAN_MODULE, configurations = [
507                 Configuration(name                      = "master",
508                                           filters               = MASTER_VULKAN_FILTERS,
509                                           runtime               = "2h29m"),
510         ])
511
512 MUSTPASS_LISTS                          = [
513                 Mustpass(project = CTS_PROJECT, version = "lmp",                packages = [LMP_GLES3_PKG, LMP_GLES31_PKG]),
514                 Mustpass(project = CTS_PROJECT, version = "lmp-mr1",    packages = [LMP_MR1_GLES3_PKG, LMP_MR1_GLES31_PKG]),
515                 Mustpass(project = CTS_PROJECT, version = "mnc",                packages = [MNC_EGL_PKG, MNC_GLES2_PKG, MNC_GLES3_PKG, MNC_GLES31_PKG]),
516                 Mustpass(project = CTS_PROJECT, version = "nyc",                packages = [NYC_EGL_PKG, NYC_GLES2_PKG, NYC_GLES3_PKG, NYC_GLES31_PKG, NYC_VULKAN_PKG]),
517                 Mustpass(project = CTS_PROJECT, version = "master",             packages = [MASTER_EGL_PKG, MASTER_GLES2_PKG, MASTER_GLES3_PKG, MASTER_GLES31_PKG, MASTER_VULKAN_PKG])
518         ]
519
520 if __name__ == "__main__":
521         genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs())