1 #ifndef _GLCCONFIGLIST_HPP
2 #define _GLCCONFIGLIST_HPP
3 /*-------------------------------------------------------------------------
4 * OpenGL Conformance Test Suite
5 * -----------------------------
7 * Copyright (c) 2016 Google Inc.
8 * Copyright (c) 2016 The Khronos Group Inc.
10 * Licensed under the Apache License, Version 2.0 (the "License");
11 * you may not use this file except in compliance with the License.
12 * You may obtain a copy of the License at
14 * http://www.apache.org/licenses/LICENSE-2.0
16 * Unless required by applicable law or agreed to in writing, software
17 * distributed under the License is distributed on an "AS IS" BASIS,
18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 * See the License for the specific language governing permissions and
20 * limitations under the License.
24 * \brief CTS rendering configuration list utility.
25 */ /*-------------------------------------------------------------------*/
27 #include "gluPlatform.hpp"
28 #include "tcuCommandLine.hpp"
29 #include "tcuDefs.hpp"
39 CONFIGTYPE_DEFAULT = 0, //!< Only default config (no parameters).
40 CONFIGTYPE_EGL, //!< EGL config.
41 CONFIGTYPE_WGL, //!< WGL config.
48 SURFACETYPE_WINDOW = (1 << tcu::SURFACETYPE_WINDOW),
49 SURFACETYPE_PIXMAP = (1 << tcu::SURFACETYPE_OFFSCREEN_NATIVE),
50 SURFACETYPE_PBUFFER = (1 << tcu::SURFACETYPE_OFFSCREEN_GENERIC),
51 SURFACETYPE_FBO = (1 << tcu::SURFACETYPE_FBO),
56 EXCLUDEREASON_NOT_COMPATIBLE = 0, //!< Not compatible with target API
57 EXCLUDEREASON_NOT_CONFORMANT, //!< Compatible but not conformant
58 EXCLUDEREASON_MSAA, //!< Compatible but not testable with current tests
59 EXCLUDEREASON_FLOAT, //!< Compatible but not testable with current tests
60 EXCLUDEREASON_YUV, //!< Compatible but not testable with current tests
66 Config(ConfigType type_, int id_, deUint32 surfaceTypes_) : type(type_), id(id_), surfaceTypes(surfaceTypes_)
70 Config(void) : type(CONFIGTYPE_LAST), id(0), surfaceTypes(0)
76 deUint32 surfaceTypes;
81 ExcludedConfig(ConfigType type_, int id_, ExcludeReason reason_) : type(type_), id(id_), reason(reason_)
85 ExcludedConfig(void) : type(CONFIGTYPE_LAST), id(0), reason(EXCLUDEREASON_LAST)
96 AOSPConfig(ConfigType type_, int id_, deUint32 surfaceTypes_, deInt32 redBits_, deInt32 greenBits_,
97 deInt32 blueBits_, deInt32 alphaBits_, deInt32 depthBits_, deInt32 stencilBits_, deInt32 samples_)
100 , surfaceTypes(surfaceTypes_)
102 , greenBits(greenBits_)
103 , blueBits(blueBits_)
104 , alphaBits(alphaBits_)
105 , depthBits(depthBits_)
106 , stencilBits(stencilBits_)
112 : type(CONFIGTYPE_LAST)
127 deUint32 surfaceTypes;
140 // Configs exposed by an implementation which are required to pass all non-AOSP tests.
141 // This includes all configs marked as conformant but not multisample configs.
142 std::vector<Config> configs;
143 // Configs exposed by an implementation which are not required to pass the CTS.
144 // This includes non-conformant and multisample configs.
145 std::vector<ExcludedConfig> excludedConfigs;
146 // Configs exposed by an implementation which will be used to determine AOSP runs parameters.
147 // This includes all configs marked as conformant.
148 std::vector<AOSPConfig> aospConfigs;
151 void getDefaultConfigList(tcu::Platform& platform, glu::ApiType type, ConfigList& configList);
155 #endif // _GLCCONFIGLIST_HPP