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, parseBuildConfigFromCmdLineArgs 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# Master 57 58MASTER_EGL_COMMON_FILTERS = [include("egl-master.txt"), 59 exclude("egl-test-issues.txt"), 60 exclude("egl-manual-robustness.txt"), 61 exclude("egl-driver-issues.txt"), 62 exclude("egl-temp-excluded.txt")] 63MASTER_EGL_PKG = Package(module = EGL_MODULE, configurations = [ 64 # Master 65 Configuration(name = "master", 66 glconfig = "rgba8888d24s8ms0", 67 rotation = "unspecified", 68 surfacetype = "window", 69 required = True, 70 filters = MASTER_EGL_COMMON_FILTERS, 71 runtime = "23m"), 72 # Risky subset 73 Configuration(name = "master-risky", 74 glconfig = "rgba8888d24s8ms0", 75 rotation = "unspecified", 76 surfacetype = "window", 77 required = True, 78 filters = [include("egl-temp-excluded.txt")], 79 runtime = "2m"), 80 ]) 81 82MASTER_GLES2_COMMON_FILTERS = [ 83 include("gles2-master.txt"), 84 exclude("gles2-test-issues.txt"), 85 exclude("gles2-failures.txt"), 86 exclude("gles2-temp-excluded.txt"), 87 ] 88MASTER_GLES2_PKG = Package(module = GLES2_MODULE, configurations = [ 89 # Master 90 Configuration(name = "master", 91 glconfig = "rgba8888d24s8ms0", 92 rotation = "unspecified", 93 surfacetype = "window", 94 required = True, 95 filters = MASTER_GLES2_COMMON_FILTERS, 96 runtime = "46m", 97 runByDefault = False), 98 Configuration(name = "master-2020-03-01", 99 glconfig = "rgba8888d24s8ms0", 100 rotation = "unspecified", 101 surfacetype = "window", 102 required = True, 103 filters = [include("gles2-master-2020-03-01.txt")], 104 runtime = "46m"), 105 Configuration(name = "master-2021-03-01", 106 glconfig = "rgba8888d24s8ms0", 107 rotation = "unspecified", 108 surfacetype = "window", 109 required = True, 110 filters = MASTER_GLES2_COMMON_FILTERS + [exclude("gles2-master-2020-03-01.txt")], 111 runtime = "10m"), 112 ]) 113 114MASTER_GLES3_COMMON_FILTERS = [ 115 include("gles3-master.txt"), 116 exclude("gles3-hw-issues.txt"), 117 exclude("gles3-driver-issues.txt"), 118 exclude("gles3-test-issues.txt"), 119 exclude("gles3-spec-issues.txt"), 120 exclude("gles3-temp-excluded.txt"), 121 ] 122MASTER_GLES3_PKG = Package(module = GLES3_MODULE, configurations = [ 123 # Master 124 Configuration(name = "master", 125 glconfig = "rgba8888d24s8ms0", 126 rotation = "unspecified", 127 surfacetype = "window", 128 required = True, 129 filters = MASTER_GLES3_COMMON_FILTERS, 130 runtime = "1h50m", 131 runByDefault = False), 132 Configuration(name = "master-2020-03-01", 133 glconfig = "rgba8888d24s8ms0", 134 rotation = "unspecified", 135 surfacetype = "window", 136 required = True, 137 filters = [include("gles3-master-2020-03-01.txt")], 138 runtime = "1h50m"), 139 Configuration(name = "master-2021-03-01", 140 glconfig = "rgba8888d24s8ms0", 141 rotation = "unspecified", 142 surfacetype = "window", 143 required = True, 144 filters = MASTER_GLES3_COMMON_FILTERS + [exclude("gles3-master-2020-03-01.txt")], 145 runtime = "10m"), 146 # Rotations 147 Configuration(name = "rotate-portrait", 148 glconfig = "rgba8888d24s8ms0", 149 rotation = "0", 150 surfacetype = "window", 151 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 152 runtime = "1m"), 153 Configuration(name = "rotate-landscape", 154 glconfig = "rgba8888d24s8ms0", 155 rotation = "90", 156 surfacetype = "window", 157 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 158 runtime = "1m"), 159 Configuration(name = "rotate-reverse-portrait", 160 glconfig = "rgba8888d24s8ms0", 161 rotation = "180", 162 surfacetype = "window", 163 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 164 runtime = "1m"), 165 Configuration(name = "rotate-reverse-landscape", 166 glconfig = "rgba8888d24s8ms0", 167 rotation = "270", 168 surfacetype = "window", 169 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-rotation.txt")], 170 runtime = "1m"), 171 172 # MSAA 173 Configuration(name = "multisample", 174 glconfig = "rgba8888d24s8ms4", 175 rotation = "unspecified", 176 surfacetype = "window", 177 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-multisample.txt"), 178 exclude("gles3-multisample-issues.txt")], 179 runtime = "1m"), 180 181 # Pixel format 182 Configuration(name = "565-no-depth-no-stencil", 183 glconfig = "rgb565d0s0ms0", 184 rotation = "unspecified", 185 surfacetype = "window", 186 filters = MASTER_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt"), 187 exclude("gles3-pixelformat-issues.txt")], 188 runtime = "1m"), 189 # Incremental dEQP 190 Configuration(name = "incremental-deqp", 191 filters = [include("gles3-incremental-deqp.txt")], 192 runtime = "5m", 193 runByDefault = False), 194 ]) 195 196MASTER_GLES31_COMMON_FILTERS = [ 197 include("gles31-master.txt"), 198 exclude("gles31-hw-issues.txt"), 199 exclude("gles31-driver-issues.txt"), 200 exclude("gles31-test-issues.txt"), 201 exclude("gles31-spec-issues.txt"), 202 exclude("gles31-temp-excluded.txt"), 203 ] 204MASTER_GLES31_PKG = Package(module = GLES31_MODULE, configurations = [ 205 # Master 206 Configuration(name = "master", 207 glconfig = "rgba8888d24s8ms0", 208 rotation = "unspecified", 209 surfacetype = "window", 210 required = True, 211 filters = MASTER_GLES31_COMMON_FILTERS, 212 runtime = "1h40m", 213 runByDefault = False), 214 Configuration(name = "master-2020-03-01", 215 glconfig = "rgba8888d24s8ms0", 216 rotation = "unspecified", 217 surfacetype = "window", 218 required = True, 219 filters = [include("gles31-master-2020-03-01.txt")], 220 runtime = "1h40m"), 221 Configuration(name = "master-2021-03-01", 222 glconfig = "rgba8888d24s8ms0", 223 rotation = "unspecified", 224 surfacetype = "window", 225 required = True, 226 filters = MASTER_GLES31_COMMON_FILTERS + [exclude("gles31-master-2020-03-01.txt")], 227 runtime = "10m"), 228 229 # Rotations 230 Configuration(name = "rotate-portrait", 231 glconfig = "rgba8888d24s8ms0", 232 rotation = "0", 233 surfacetype = "window", 234 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 235 runtime = "1m30s"), 236 Configuration(name = "rotate-landscape", 237 glconfig = "rgba8888d24s8ms0", 238 rotation = "90", 239 surfacetype = "window", 240 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 241 runtime = "1m30s"), 242 Configuration(name = "rotate-reverse-portrait", 243 glconfig = "rgba8888d24s8ms0", 244 rotation = "180", 245 surfacetype = "window", 246 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 247 runtime = "1m30s"), 248 Configuration(name = "rotate-reverse-landscape", 249 glconfig = "rgba8888d24s8ms0", 250 rotation = "270", 251 surfacetype = "window", 252 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-rotation.txt")], 253 runtime = "1m30s"), 254 255 # MSAA 256 Configuration(name = "multisample", 257 glconfig = "rgba8888d24s8ms4", 258 rotation = "unspecified", 259 surfacetype = "window", 260 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-multisample.txt")], 261 runtime = "2m"), 262 263 # Pixel format 264 Configuration(name = "565-no-depth-no-stencil", 265 glconfig = "rgb565d0s0ms0", 266 rotation = "unspecified", 267 surfacetype = "window", 268 filters = MASTER_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")], 269 runtime = "1m"), 270 ]) 271 272MASTER_VULKAN_FILTERS = [ 273 include("vk-master.txt"), 274 exclude("vk-not-applicable.txt"), 275 exclude("vk-excluded-tests.txt"), 276 exclude("vk-test-issues.txt"), 277 exclude("vk-waivers.txt"), 278 exclude("vk-temp-excluded.txt"), 279 ] 280MASTER_VULKAN_PKG = Package(module = VULKAN_MODULE, configurations = [ 281 Configuration(name = "master", 282 filters = MASTER_VULKAN_FILTERS, 283 runtime = "2h39m", 284 runByDefault = False, 285 splitToMultipleFiles = True), 286 Configuration(name = "master-2019-03-01", 287 filters = [include("vk-master-2019-03-01.txt")], 288 runtime = "2h29m", 289 splitToMultipleFiles = True), 290 Configuration(name = "master-2020-03-01", 291 filters = [include("vk-master-2020-03-01.txt")], 292 runtime = "2h29m", 293 splitToMultipleFiles = True), 294 Configuration(name = "master-2021-03-01", 295 filters = MASTER_VULKAN_FILTERS + [exclude("vk-master-2019-03-01.txt"), exclude("vk-master-2020-03-01.txt")], 296 runtime = "10m", 297 splitToMultipleFiles = True), 298 Configuration(name = "incremental-deqp", 299 filters = [include("vk-incremental-deqp.txt")], 300 runtime = "5m", 301 runByDefault = False, 302 splitToMultipleFiles = True), 303 ]) 304 305MUSTPASS_LISTS = [ 306 Mustpass(project = CTS_PROJECT, version = "master", packages = [MASTER_EGL_PKG, MASTER_GLES2_PKG, MASTER_GLES3_PKG, MASTER_GLES31_PKG, MASTER_VULKAN_PKG]) 307 ] 308 309if __name__ == "__main__": 310 genMustpassLists(MUSTPASS_LISTS, ANY_GENERATOR, parseBuildConfigFromCmdLineArgs()) 311