Merge "Add runtime estimates for the CTS v2 integration" into nyc-dev
[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
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 # Master
201
202 MASTER_EGL_COMMON_FILTERS               = [include("egl-master.txt"),
203                                                                    exclude("egl-test-issues.txt"),
204                                                                    exclude("egl-internal-api-tests.txt")]
205 MASTER_EGL_PKG                                  = Package(module = EGL_MODULE, configurations = [
206                 # Master
207                 Configuration(name                      = "master",
208                                           glconfig              = "rgba8888d24s8ms0",
209                                           rotation              = "unspecified",
210                                           surfacetype   = "window",
211                                           filters               = MASTER_EGL_COMMON_FILTERS,
212                                       runtime           = "24m"),
213         ])
214
215 MASTER_GLES2_COMMON_FILTERS             = [
216                 include("gles2-master.txt"),
217                 exclude("gles2-test-issues.txt"),
218                 exclude("gles2-failures.txt")
219         ]
220 MASTER_GLES2_PKG                                = Package(module = GLES2_MODULE, configurations = [
221                 # Master
222                 Configuration(name                      = "master",
223                                           glconfig              = "rgba8888d24s8ms0",
224                                           rotation              = "unspecified",
225                                           surfacetype   = "window",
226                                           filters               = MASTER_GLES2_COMMON_FILTERS,
227                                           runtime               = "40m"),
228         ])
229
230 MASTER_GLES3_COMMON_FILTERS             = [
231                 include("gles3-master.txt"),
232                 exclude("gles3-hw-issues.txt"),
233                 exclude("gles3-driver-issues.txt"),
234                 exclude("gles3-test-issues.txt"),
235                 exclude("gles3-spec-issues.txt")
236         ]
237 MASTER_GLES3_PKG                                = Package(module = GLES3_MODULE, configurations = [
238                 # Master
239                 Configuration(name                      = "master",
240                                           glconfig              = "rgba8888d24s8ms0",
241                                           rotation              = "unspecified",
242                                           surfacetype   = "window",
243                                           filters               = MASTER_GLES3_COMMON_FILTERS,
244                                           runtime               = "1h15m"),
245                 # Rotations
246                 Configuration(name                      = "rotate-portrait",
247                                           glconfig              = "rgba8888d24s8ms0",
248                                           rotation              = "0",
249                                           surfacetype   = "window",
250                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
251                                           runtime               = "7m"),
252                 Configuration(name                      = "rotate-landscape",
253                                           glconfig              = "rgba8888d24s8ms0",
254                                           rotation              = "90",
255                                           surfacetype   = "window",
256                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
257                                           runtime               = "7m"),
258                 Configuration(name                      = "rotate-reverse-portrait",
259                                           glconfig              = "rgba8888d24s8ms0",
260                                           rotation              = "180",
261                                           surfacetype   = "window",
262                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
263                                           runtime               = "7m"),
264                 Configuration(name                      = "rotate-reverse-landscape",
265                                           glconfig              = "rgba8888d24s8ms0",
266                                           rotation              = "270",
267                                           surfacetype   = "window",
268                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")],
269                                           runtime               = "7m"),
270
271                 # MSAA
272                 Configuration(name                      = "multisample",
273                                           glconfig              = "rgba8888d24s8ms4",
274                                           rotation              = "unspecified",
275                                           surfacetype   = "window",
276                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"),
277                                                                                                                                          exclude("gles3-multisample-issues.txt")],
278                                           runtime               = "10m"),
279
280                 # Pixel format
281                 Configuration(name                      = "565-no-depth-no-stencil",
282                                           glconfig              = "rgb565d0s0ms0",
283                                           rotation              = "unspecified",
284                                           surfacetype   = "window",
285                                           filters               = MASTER_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"),
286                                                                                                                                          exclude("gles3-pixelformat-issues.txt")],
287                                           runtime               = "10m"),
288         ])
289
290 MASTER_GLES31_COMMON_FILTERS    = [
291                 include("gles31-master.txt"),
292                 exclude("gles31-hw-issues.txt"),
293                 exclude("gles31-driver-issues.txt"),
294                 exclude("gles31-test-issues.txt"),
295                 exclude("gles31-spec-issues.txt"),
296         ]
297 MASTER_GLES31_PKG                               = Package(module = GLES31_MODULE, configurations = [
298                 # Master
299                 Configuration(name                      = "master",
300                                           glconfig              = "rgba8888d24s8ms0",
301                                           rotation              = "unspecified",
302                                           surfacetype   = "window",
303                                           filters               = MASTER_GLES31_COMMON_FILTERS,
304                                           runtime               = "7h30m"),
305
306                 # Rotations
307                 Configuration(name                      = "rotate-portrait",
308                                           glconfig              = "rgba8888d24s8ms0",
309                                           rotation              = "0",
310                                           surfacetype   = "window",
311                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
312                                           runtime               = "1m30s"),
313                 Configuration(name                      = "rotate-landscape",
314                                           glconfig              = "rgba8888d24s8ms0",
315                                           rotation              = "90",
316                                           surfacetype   = "window",
317                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
318                                           runtime               = "1m30s"),
319                 Configuration(name                      = "rotate-reverse-portrait",
320                                           glconfig              = "rgba8888d24s8ms0",
321                                           rotation              = "180",
322                                           surfacetype   = "window",
323                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
324                                           runtime               = "1m30s"),
325                 Configuration(name                      = "rotate-reverse-landscape",
326                                           glconfig              = "rgba8888d24s8ms0",
327                                           rotation              = "270",
328                                           surfacetype   = "window",
329                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")],
330                                           runtime               = "1m30s"),
331
332                 # MSAA
333                 Configuration(name                      = "multisample",
334                                           glconfig              = "rgba8888d24s8ms4",
335                                           rotation              = "unspecified",
336                                           surfacetype   = "window",
337                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")],
338                                           runtime               = "2m"),
339
340                 # Pixel format
341                 Configuration(name                      = "565-no-depth-no-stencil",
342                                           glconfig              = "rgb565d0s0ms0",
343                                           rotation              = "unspecified",
344                                           surfacetype   = "window",
345                                           filters               = MASTER_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")],
346                                           runtime               = "1m"),
347         ])
348
349 MASTER_VULKAN_FILTERS                   = [
350                 include("vulkan-master.txt"),
351                 exclude("vulkan-not-applicable.txt"),
352                 exclude("vulkan-test-issues.txt"),
353                 exclude("vulkan-hw-issues.txt")
354         ]
355 MASTER_VULKAN_PKG                               = Package(module = VULKAN_MODULE, configurations = [
356                 Configuration(name                      = "master",
357                                           filters               = MASTER_VULKAN_FILTERS,
358                                           runtime               = "3h45m"),
359         ])
360
361 MUSTPASS_LISTS                          = [
362                 Mustpass(project = CTS_PROJECT, version = "lmp",                packages = [LMP_GLES3_PKG, LMP_GLES31_PKG]),
363                 Mustpass(project = CTS_PROJECT, version = "lmp-mr1",    packages = [LMP_MR1_GLES3_PKG, LMP_MR1_GLES31_PKG]),
364                 Mustpass(project = CTS_PROJECT, version = "mnc",                packages = [MNC_EGL_PKG, MNC_GLES2_PKG, MNC_GLES3_PKG, MNC_GLES31_PKG]),
365                 Mustpass(project = CTS_PROJECT, version = "master",             packages = [MASTER_EGL_PKG, MASTER_GLES2_PKG, MASTER_GLES3_PKG, MASTER_GLES31_PKG, MASTER_VULKAN_PKG])
366         ]
367
368 BUILD_CONFIG                            = getBuildConfig(DEFAULT_BUILD_DIR, DEFAULT_TARGET, "Debug")
369
370 if __name__ == "__main__":
371         genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, BUILD_CONFIG)