blob: 116513719cfeaee4d1eb0488073babdfda72367f [file] [log] [blame]
Jarkko Pöyryecfbb102015-04-03 11:14:49 -07001# -*- 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
Pyry Haulos2bbb9d22016-01-14 13:48:08 -080023from build.common import DEQP_DIR
Jarkko Pöyryecfbb102015-04-03 11:14:49 -070024from build.config import ANY_GENERATOR
Pyry Haulos2bbb9d22016-01-14 13:48:08 -080025from build_caselists import Module, getModuleByName, getBuildConfig, DEFAULT_BUILD_DIR, DEFAULT_TARGET
26from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists
Jarkko Pöyryecfbb102015-04-03 11:14:49 -070027
Pyry Haulos2bbb9d22016-01-14 13:48:08 -080028import os
Kalle Raita64d9cc32015-10-12 16:18:15 -070029
30COPYRIGHT_DECLARATION = """
Mika Isojärvi56da1a62016-02-05 10:57:39 -080031 Copyright (C) 2016 The Android Open Source Project
Kalle Raita64d9cc32015-10-12 16:18:15 -070032
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
Pyry Haulos2bbb9d22016-01-14 13:48:08 -080046CTS_DATA_DIR = os.path.join(DEQP_DIR, "android", "cts")
Jarkko Pöyryecfbb102015-04-03 11:14:49 -070047
Pyry Haulos2bbb9d22016-01-14 13:48:08 -080048CTS_PROJECT = Project(path = CTS_DATA_DIR, copyright = COPYRIGHT_DECLARATION)
Jarkko Pöyryecfbb102015-04-03 11:14:49 -070049
Pyry Haulos2bbb9d22016-01-14 13:48:08 -080050EGL_MODULE = getModuleByName("dEQP-EGL")
51GLES2_MODULE = getModuleByName("dEQP-GLES2")
52GLES3_MODULE = getModuleByName("dEQP-GLES3")
53GLES31_MODULE = getModuleByName("dEQP-GLES31")
54VULKAN_MODULE = getModuleByName("dEQP-VK")
Jarkko Pöyryecfbb102015-04-03 11:14:49 -070055
Pyry Haulosdcd1b912015-09-02 14:59:24 -070056# Lollipop
57
Pyry Haulos083b5992015-04-14 10:49:55 -070058LMP_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [
Jarkko Pöyryecfbb102015-04-03 11:14:49 -070059 Configuration(name = "master",
60 glconfig = "rgba8888d24s8ms0",
61 rotation = "unspecified",
62 surfacetype = "window",
63 filters = [include("es30-lmp.txt")]),
64 ])
Pyry Haulos083b5992015-04-14 10:49:55 -070065LMP_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
Jarkko Pöyryecfbb102015-04-03 11:14:49 -070066 Configuration(name = "master",
67 glconfig = "rgba8888d24s8ms0",
68 rotation = "unspecified",
69 surfacetype = "window",
70 filters = [include("es31-lmp.txt")]),
71 ])
72
Pyry Haulosdcd1b912015-09-02 14:59:24 -070073# Lollipop MR1
74
Pyry Haulos083b5992015-04-14 10:49:55 -070075LMP_MR1_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [
Jarkko Pöyryecfbb102015-04-03 11:14:49 -070076 Configuration(name = "master",
77 glconfig = "rgba8888d24s8ms0",
78 rotation = "unspecified",
79 surfacetype = "window",
80 filters = [include("es30-lmp-mr1.txt")]),
81 ])
Pyry Haulos083b5992015-04-14 10:49:55 -070082LMP_MR1_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
Jarkko Pöyryecfbb102015-04-03 11:14:49 -070083 Configuration(name = "master",
84 glconfig = "rgba8888d24s8ms0",
85 rotation = "unspecified",
86 surfacetype = "window",
87 filters = [include("es31-lmp-mr1.txt")]),
88 ])
89
Pyry Haulosdcd1b912015-09-02 14:59:24 -070090# Marshmallow
91
92MNC_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 ])
100MNC_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 ])
108MNC_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 ])
155MNC_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
Mika Isojärvid767ee42016-02-03 10:43:20 -0800202MASTER_EGL_COMMON_FILTERS = [include("egl-master.txt"),
203 exclude("egl-test-issues.txt"),
204 exclude("egl-internal-api-tests.txt")]
Pyry Haulos083b5992015-04-14 10:49:55 -0700205MASTER_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 ])
213
Jarkko Pöyryd1554a92015-06-08 12:25:35 -0700214MASTER_GLES2_COMMON_FILTERS = [
215 include("gles2-master.txt"),
216 exclude("gles2-test-issues.txt"),
217 exclude("gles2-failures.txt")
218 ]
Pyry Haulos083b5992015-04-14 10:49:55 -0700219MASTER_GLES2_PKG = Package(module = GLES2_MODULE, configurations = [
220 # Master
221 Configuration(name = "master",
222 glconfig = "rgba8888d24s8ms0",
223 rotation = "unspecified",
224 surfacetype = "window",
225 filters = MASTER_GLES2_COMMON_FILTERS),
226 ])
227
Pyry Haulos3d3ce452015-04-17 09:56:27 -0700228MASTER_GLES3_COMMON_FILTERS = [
229 include("gles3-master.txt"),
230 exclude("gles3-hw-issues.txt"),
Mika Isojärvi27f6f9f2015-06-01 12:49:49 -0700231 exclude("gles3-driver-issues.txt"),
Pyry Haulos3d3ce452015-04-17 09:56:27 -0700232 exclude("gles3-test-issues.txt"),
233 exclude("gles3-spec-issues.txt")
234 ]
Pyry Haulos4223d192015-04-14 10:05:11 -0700235MASTER_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700236 # Master
237 Configuration(name = "master",
238 glconfig = "rgba8888d24s8ms0",
239 rotation = "unspecified",
240 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700241 filters = MASTER_GLES3_COMMON_FILTERS),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700242 # Rotations
243 Configuration(name = "rotate-portrait",
244 glconfig = "rgba8888d24s8ms0",
245 rotation = "0",
246 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700247 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700248 Configuration(name = "rotate-landscape",
249 glconfig = "rgba8888d24s8ms0",
250 rotation = "90",
251 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700252 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700253 Configuration(name = "rotate-reverse-portrait",
254 glconfig = "rgba8888d24s8ms0",
255 rotation = "180",
256 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700257 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700258 Configuration(name = "rotate-reverse-landscape",
259 glconfig = "rgba8888d24s8ms0",
260 rotation = "270",
261 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700262 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700263
264 # MSAA
265 Configuration(name = "multisample",
266 glconfig = "rgba8888d24s8ms4",
267 rotation = "unspecified",
268 surfacetype = "window",
Kalle Raita48124f12015-08-07 14:17:40 -0700269 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"),
270 exclude("gles3-multisample-issues.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700271
272 # Pixel format
273 Configuration(name = "565-no-depth-no-stencil",
274 glconfig = "rgb565d0s0ms0",
275 rotation = "unspecified",
276 surfacetype = "window",
Mika Isojärvifcb31b82015-08-17 12:50:00 -0700277 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"),
278 exclude("gles3-pixelformat-issues.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700279 ])
280
Pyry Haulos3d3ce452015-04-17 09:56:27 -0700281MASTER_GLES31_COMMON_FILTERS = [
282 include("gles31-master.txt"),
283 exclude("gles31-hw-issues.txt"),
Pyry Haulos4ce5f632015-07-22 15:41:56 -0700284 exclude("gles31-driver-issues.txt"),
Pyry Haulos3d3ce452015-04-17 09:56:27 -0700285 exclude("gles31-test-issues.txt"),
Jarkko Pöyryf38ef812015-04-16 15:49:10 -0700286 exclude("gles31-spec-issues.txt"),
Pyry Haulos3d3ce452015-04-17 09:56:27 -0700287 ]
Pyry Haulos4223d192015-04-14 10:05:11 -0700288MASTER_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700289 # Master
290 Configuration(name = "master",
291 glconfig = "rgba8888d24s8ms0",
292 rotation = "unspecified",
293 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700294 filters = MASTER_GLES31_COMMON_FILTERS),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700295
296 # Rotations
297 Configuration(name = "rotate-portrait",
298 glconfig = "rgba8888d24s8ms0",
299 rotation = "0",
300 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700301 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700302 Configuration(name = "rotate-landscape",
303 glconfig = "rgba8888d24s8ms0",
304 rotation = "90",
305 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700306 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700307 Configuration(name = "rotate-reverse-portrait",
308 glconfig = "rgba8888d24s8ms0",
309 rotation = "180",
310 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700311 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700312 Configuration(name = "rotate-reverse-landscape",
313 glconfig = "rgba8888d24s8ms0",
314 rotation = "270",
315 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700316 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700317
318 # MSAA
319 Configuration(name = "multisample",
320 glconfig = "rgba8888d24s8ms4",
321 rotation = "unspecified",
322 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700323 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700324
325 # Pixel format
326 Configuration(name = "565-no-depth-no-stencil",
327 glconfig = "rgb565d0s0ms0",
328 rotation = "unspecified",
329 surfacetype = "window",
Pyry Haulos4223d192015-04-14 10:05:11 -0700330 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")]),
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700331 ])
332
Mika Isojärvifb2d85c2016-02-04 15:35:09 -0800333MASTER_VULKAN_FILTERS = [
334 include("vulkan-master.txt"),
Pyry Haulos9f6ea092016-03-11 08:27:52 -0800335 exclude("vulkan-not-applicable.txt"),
Mika Isojärvi8ea93e42016-03-10 14:42:34 -0800336 exclude("vulkan-test-issues.txt"),
337 exclude("vulkan-hw-issues.txt")
Mika Isojärvifb2d85c2016-02-04 15:35:09 -0800338 ]
339MASTER_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [
340 Configuration(name = "master",
341 filters = MASTER_VULKAN_FILTERS),
342 ])
343
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700344MUSTPASS_LISTS = [
Pyry Haulos2bbb9d22016-01-14 13:48:08 -0800345 Mustpass(project = CTS_PROJECT, version = "lmp", packages = [LMP_GLES3_PKG, LMP_GLES31_PKG]),
346 Mustpass(project = CTS_PROJECT, version = "lmp-mr1", packages = [LMP_MR1_GLES3_PKG, LMP_MR1_GLES31_PKG]),
347 Mustpass(project = CTS_PROJECT, version = "mnc", packages = [MNC_EGL_PKG, MNC_GLES2_PKG, MNC_GLES3_PKG, MNC_GLES31_PKG]),
Mika Isojärvifb2d85c2016-02-04 15:35:09 -0800348 Mustpass(project = CTS_PROJECT, version = "master", packages = [MASTER_EGL_PKG, MASTER_GLES2_PKG, MASTER_GLES3_PKG, MASTER_GLES31_PKG, MASTER_VULKAN_PKG])
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700349 ]
350
Pyry Haulos2bbb9d22016-01-14 13:48:08 -0800351BUILD_CONFIG = getBuildConfig(DEFAULT_BUILD_DIR, DEFAULT_TARGET, "Debug")
352
Jarkko Pöyryecfbb102015-04-03 11:14:49 -0700353if __name__ == "__main__":
Pyry Haulos2bbb9d22016-01-14 13:48:08 -0800354 genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, BUILD_CONFIG)