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 23from build.common import DEQP_DIR 24from build.config import ANY_GENERATOR 25from build_caselists import Module, getModuleByName, getBuildConfig, DEFAULT_BUILD_DIR, DEFAULT_TARGET 26from mustpass import Project, Package, Mustpass, Configuration, include, exclude, genMustpassLists 27 28import os 29 30COPYRIGHT_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 46CTS_DATA_DIR = os.path.join(DEQP_DIR, "android", "cts") 47 48CTS_PROJECT = Project(path = CTS_DATA_DIR, copyright = COPYRIGHT_DECLARATION) 49 50EGL_MODULE = getModuleByName("dEQP-EGL") 51GLES2_MODULE = getModuleByName("dEQP-GLES2") 52GLES3_MODULE = getModuleByName("dEQP-GLES3") 53GLES31_MODULE = getModuleByName("dEQP-GLES31") 54VULKAN_MODULE = getModuleByName("dEQP-VK") 55 56# Lollipop 57 58LMP_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 ]) 65LMP_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 75LMP_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 ]) 82LMP_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 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 202MASTER_EGL_COMMON_FILTERS = [include("egl-master.txt"), 203 exclude("egl-test-issues.txt"), 204 exclude("egl-internal-api-tests.txt")] 205MASTER_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 215MASTER_GLES2_COMMON_FILTERS = [ 216 include("gles2-master.txt"), 217 exclude("gles2-test-issues.txt"), 218 exclude("gles2-failures.txt") 219 ] 220MASTER_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 230MASTER_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 ] 237MASTER_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 290MASTER_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 ] 297MASTER_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 349MASTER_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 ] 355MASTER_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [ 356 Configuration(name = "master", 357 filters = MASTER_VULKAN_FILTERS, 358 runtime = "3h45m"), 359 ]) 360 361MUSTPASS_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 368BUILD_CONFIG = getBuildConfig(DEFAULT_BUILD_DIR, DEFAULT_TARGET, "Debug") 369 370if __name__ == "__main__": 371 genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, BUILD_CONFIG) 372