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