1/*------------------------------------------------------------------------- 2 * OpenGL Conformance Test Suite 3 * ----------------------------- 4 * 5 * Copyright (c) 2014-2016 The Khronos Group Inc. 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * 19 */ /*! 20 * \file 21 * \brief 22 */ /*-------------------------------------------------------------------*/ 23 24/** 25 */ /*! 26 * \file es31cTextureStorageMultisampleTests.cpp 27 * \brief Implements test group consisting of all the tests verifying 28 * multisample texture functionality. (ES3.1 only) 29 */ /*-------------------------------------------------------------------*/ 30 31#include "es31cTextureStorageMultisampleTests.hpp" 32#include "es31cTextureStorageMultisampleDependenciesTests.hpp" 33#include "es31cTextureStorageMultisampleFunctionalTests.hpp" 34#include "es31cTextureStorageMultisampleGLCoverageTests.hpp" 35#include "es31cTextureStorageMultisampleGetActiveUniformTests.hpp" 36#include "es31cTextureStorageMultisampleGetMultisamplefvTests.hpp" 37#include "es31cTextureStorageMultisampleGetTexLevelParameterifvTests.hpp" 38#include "es31cTextureStorageMultisampleSampleMaskiTests.hpp" 39#include "es31cTextureStorageMultisampleTexStorage2DMultisampleTests.hpp" 40#include "es31cTextureStorageMultisampleTexStorage3DMultisampleTests.hpp" 41 42namespace glcts 43{ 44/** Constructor. 45 * 46 * @param context Rendering context. 47 **/ 48TextureStorageMultisampleTests::TextureStorageMultisampleTests(Context& context) 49 : TestCaseGroup(context, "texture_storage_multisample", "Multisample texture storage conformance test group") 50{ 51 /* Left blank on purpose */ 52} 53 54/** Initializes a texture_storage_multisample test group. 55 * 56 **/ 57void TextureStorageMultisampleTests::init(void) 58{ 59 /* Creating Tests Groups */ 60 tcu::TestCaseGroup* apiGLGetActiveUniformTestGroup = 61 new tcu::TestCaseGroup(m_testCtx, "APIGLGetActiveUniform", "glGetActiveUniform()"); 62 tcu::TestCaseGroup* apiGLTexStorage2DMultisampleTestGroup = 63 new tcu::TestCaseGroup(m_testCtx, "APIGLTexStorage2DMultisample", "glTexStorage2DMultisample()"); 64 tcu::TestCaseGroup* apiGLTexStorage3DMultisampleTestGroup = 65 new tcu::TestCaseGroup(m_testCtx, "APIGLTexStorage3DMultisample", "glTexStorage3DMultisampleOES()"); 66 tcu::TestCaseGroup* apiGLGetMultisamplefvTestGroup = 67 new tcu::TestCaseGroup(m_testCtx, "APIGLGetMultisamplefv", "glGetMultisamplefv()"); 68 tcu::TestCaseGroup* apiGLGetTexLevelParameterifvTestGroup = 69 new tcu::TestCaseGroup(m_testCtx, "APIGLGetTexLevelParameterifv", "glGetTexLevelParameterifv()"); 70 tcu::TestCaseGroup* apiGLSampleMaskiTestGroup = 71 new tcu::TestCaseGroup(m_testCtx, "APIGLSampleMaski", "glSampleMaski()"); 72 tcu::TestCaseGroup* apiDependenciesTestGroup = 73 new tcu::TestCaseGroup(m_testCtx, "APIDependencies", "API Dependncies"); 74 tcu::TestCaseGroup* apiGLCoverageTestGroup = new tcu::TestCaseGroup(m_testCtx, "GLCoverage", "GL Coverage"); 75 tcu::TestCaseGroup* functionalTestGroup = new tcu::TestCaseGroup(m_testCtx, "FunctionalTests", "Functional Tests"); 76 77 /* Adding tests groups as children of this test suite */ 78 addChild(apiGLGetActiveUniformTestGroup); 79 addChild(apiGLTexStorage2DMultisampleTestGroup); 80 addChild(apiGLTexStorage3DMultisampleTestGroup); 81 addChild(apiGLGetMultisamplefvTestGroup); 82 addChild(apiGLGetTexLevelParameterifvTestGroup); 83 addChild(apiGLSampleMaskiTestGroup); 84 addChild(apiDependenciesTestGroup); 85 addChild(apiGLCoverageTestGroup); 86 addChild(functionalTestGroup); 87 88 /* Assign tests to parent group: APIGLGetActiveUniform */ 89 apiGLGetActiveUniformTestGroup->addChild(new glcts::MultisampleTextureGetActiveUniformSamplersTest(m_context)); 90 91 /* Assign tests to parent group: APIGLTexStorage2DMultisample */ 92 apiGLTexStorage2DMultisampleTestGroup->addChild( 93 new glcts::MultisampleTextureTexStorage2DGeneralSamplesNumberTest(m_context)); 94 apiGLTexStorage2DMultisampleTestGroup->addChild( 95 new glcts::MultisampleTextureTexStorage2DInvalidAndBorderCaseTextureSizesTest(m_context)); 96 apiGLTexStorage2DMultisampleTestGroup->addChild( 97 new glcts::MultisampleTextureTexStorage2DNonColorDepthOrStencilInternalFormatsTest(m_context)); 98 apiGLTexStorage2DMultisampleTestGroup->addChild( 99 new glcts::MultisampleTextureTexStorage2DReconfigurationRejectedTest(m_context)); 100 apiGLTexStorage2DMultisampleTestGroup->addChild( 101 new glcts::MultisampleTextureTexStorage2DTexture2DMultisampleArrayTest(m_context)); 102 apiGLTexStorage2DMultisampleTestGroup->addChild( 103 new glcts::MultisampleTextureTexStorage2DUnsupportedSamplesCountForColorTexturesTest(m_context)); 104 apiGLTexStorage2DMultisampleTestGroup->addChild( 105 new glcts::MultisampleTextureTexStorage2DUnsupportedSamplesCountForDepthTexturesTest(m_context)); 106 apiGLTexStorage2DMultisampleTestGroup->addChild( 107 new glcts::MultisampleTextureTexStorage2DUnsupportedSamplesCountForDepthStencilTexturesTest(m_context)); 108 apiGLTexStorage2DMultisampleTestGroup->addChild(new glcts::MultisampleTextureTexStorage2DValidCallsTest(m_context)); 109 apiGLTexStorage2DMultisampleTestGroup->addChild(new glcts::MultisampleTextureTexStorage2DZeroSampleTest(m_context)); 110 111 /* Assign tests to parent group: APIGLTexStorage3DMultisample */ 112 apiGLTexStorage3DMultisampleTestGroup->addChild( 113 new glcts::InvalidTextureSizesAreRejectedValidAreAcceptedTest(m_context)); 114 apiGLTexStorage3DMultisampleTestGroup->addChild(new glcts::MultisampleTextureTexStorage3DZeroSampleTest(m_context)); 115 apiGLTexStorage3DMultisampleTestGroup->addChild( 116 new glcts::NonColorDepthStencilRenderableInternalformatsAreRejectedTest(m_context)); 117 apiGLTexStorage3DMultisampleTestGroup->addChild( 118 new glcts::RequestsToSetUpMultisampleColorTexturesWithUnsupportedNumberOfSamplesAreRejectedTest(m_context)); 119 apiGLTexStorage3DMultisampleTestGroup->addChild( 120 new glcts::RequestsToSetUpMultisampleDepthTexturesWithUnsupportedNumberOfSamplesAreRejectedTest(m_context)); 121 apiGLTexStorage3DMultisampleTestGroup->addChild( 122 new glcts::RequestsToSetUpMultisampleStencilTexturesWithUnsupportedNumberOfSamplesAreRejectedTest(m_context)); 123 apiGLTexStorage3DMultisampleTestGroup->addChild( 124 new glcts::RequestsToSetUpMultisampleTexturesWithValidAndInvalidNumberOfSamplesTest(m_context)); 125 apiGLTexStorage3DMultisampleTestGroup->addChild(new glcts::Texture2DMultisampleTargetIsRejectedTest(m_context)); 126 apiGLTexStorage3DMultisampleTestGroup->addChild( 127 new glcts::ValidInternalformatAndSamplesValuesAreAcceptedTest(m_context)); 128 129 /* Assign tests to parent group: APIGLGetMultisamplefv */ 130 apiGLGetMultisamplefvTestGroup->addChild( 131 new glcts::MultisampleTextureGetMultisamplefvIndexEqualGLSamplesRejectedTest(m_context)); 132 apiGLGetMultisamplefvTestGroup->addChild( 133 new glcts::MultisampleTextureGetMultisamplefvIndexGreaterGLSamplesRejectedTest(m_context)); 134 apiGLGetMultisamplefvTestGroup->addChild( 135 new glcts::MultisampleTextureGetMultisamplefvInvalidPnameRejectedTest(m_context)); 136 apiGLGetMultisamplefvTestGroup->addChild( 137 new glcts::MultisampleTextureGetMultisamplefvNullValArgumentsAcceptedTest(m_context)); 138 apiGLGetMultisamplefvTestGroup->addChild( 139 new glcts::MultisampleTextureGetMultisamplefvSamplePositionValuesValidationTest(m_context)); 140 141 /* Assign tests to parent group: APIGLGetTexLevelParameterifv */ 142 apiGLGetTexLevelParameterifvTestGroup->addChild( 143 new glcts::MultisampleTextureGetTexLevelParametervFunctionalTest(m_context)); 144 apiGLGetTexLevelParameterifvTestGroup->addChild( 145 new glcts::MultisampleTextureGetTexLevelParametervInvalidTextureTargetRejectedTest(m_context)); 146 apiGLGetTexLevelParameterifvTestGroup->addChild( 147 new glcts::MultisampleTextureGetTexLevelParametervInvalidValueArgumentRejectedTest(m_context)); 148 apiGLGetTexLevelParameterifvTestGroup->addChild( 149 new glcts::MultisampleTextureGetTexLevelParametervNegativeLodIsRejectedTest(m_context)); 150 apiGLGetTexLevelParameterifvTestGroup->addChild( 151 new glcts::MultisampleTextureGetTexLevelParametervWorksForMaximumLodTest(m_context)); 152 153 /* Assign tests to parent group: APIGLSampleMaski */ 154 apiGLGetMultisamplefvTestGroup->addChild(new glcts::MultisampleTextureSampleMaskiGettersTest(m_context)); 155 apiGLGetMultisamplefvTestGroup->addChild( 156 new glcts::MultisampleTextureSampleMaskiIndexLowerThanGLMaxSampleMaskWordsTest(m_context)); 157 apiGLGetMultisamplefvTestGroup->addChild( 158 new glcts::MultisampleTextureSampleMaskiIndexEqualToGLMaxSampleMaskWordsTest(m_context)); 159 apiGLGetMultisamplefvTestGroup->addChild( 160 new glcts::MultisampleTextureSampleMaskiIndexGreaterGLMaxSampleMaskWordsTest(m_context)); 161 162 /* Assign tests to parent group: APIDependencies */ 163 apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesFBOIncompleteness1Test(m_context)); 164 apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesFBOIncompleteness2Test(m_context)); 165 apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesFBOIncompleteness3Test(m_context)); 166 apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesFBOIncompleteness4Test(m_context)); 167 apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesFBOIncompleteness5Test(m_context)); 168 apiDependenciesTestGroup->addChild( 169 new glcts::MultisampleTextureDependenciesInvalidFramebufferTexture2DCalls1Test(m_context)); 170 apiDependenciesTestGroup->addChild( 171 new glcts::MultisampleTextureDependenciesInvalidFramebufferTexture2DCalls2Test(m_context)); 172 apiDependenciesTestGroup->addChild( 173 new glcts::MultisampleTextureDependenciesInvalidFramebufferTextureLayerCalls1Test(m_context)); 174 apiDependenciesTestGroup->addChild( 175 new glcts::MultisampleTextureDependenciesInvalidFramebufferTextureLayerCalls2Test(m_context)); 176 apiDependenciesTestGroup->addChild( 177 new glcts::MultisampleTextureDependenciesInvalidRenderbufferStorageMultisampleCalls1Test(m_context)); 178 apiDependenciesTestGroup->addChild( 179 new glcts::MultisampleTextureDependenciesInvalidRenderbufferStorageMultisampleCalls2Test(m_context)); 180 apiDependenciesTestGroup->addChild( 181 new glcts::MultisampleTextureDependenciesNoErrorGeneratedForValidFramebufferTexture2DCallsTest(m_context)); 182 apiDependenciesTestGroup->addChild( 183 new glcts::MultisampleTextureDependenciesNoErrorGeneratedForValidRenderbufferStorageMultisampleCallsTest( 184 m_context)); 185 apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesTexParameterTest(m_context)); 186 187 /* Assign tests to parent group: GLCoverage */ 188 apiGLCoverageTestGroup->addChild(new glcts::GLCoverageExtensionSpecificEnumsAreRecognizedTest(m_context)); 189 apiGLCoverageTestGroup->addChild( 190 new glcts::GLCoverageGLGetTexParameterReportsCorrectDefaultValuesForMultisampleTextureTargets(m_context)); 191 apiGLCoverageTestGroup->addChild(new glcts::GLCoverageGLSampleMaskModeStatusIsReportedCorrectlyTest(m_context)); 192 apiGLCoverageTestGroup->addChild( 193 new glcts::GLCoverageGLTexParameterHandlersAcceptZeroBaseLevelForExtensionSpecificTextureTargetsTest( 194 m_context)); 195 196 /* Assign tests to parent group: FunctionalTests */ 197 functionalTestGroup->addChild(new glcts::MultisampleTextureFunctionalTestsBlittingTest(m_context)); 198 functionalTestGroup->addChild( 199 new glcts::MultisampleTextureFunctionalTestsBlittingMultisampledDepthAttachmentTest(m_context)); 200 functionalTestGroup->addChild( 201 new glcts::MultisampleTextureFunctionalTestsBlittingMultisampledIntegerAttachmentTest(m_context)); 202 functionalTestGroup->addChild( 203 new glcts::MultisampleTextureFunctionalTestsBlittingToMultisampledFBOIsForbiddenTest(m_context)); 204 functionalTestGroup->addChild( 205 new glcts::MultisampleTextureFunctionalTestsSampleMaskingForNonIntegerColorRenderableTexturesTest(m_context)); 206 // TODO: temporarily disabled per request. Needs to be fixed. 207 //functionalTestGroup->addChild(new glcts::MultisampleTextureFunctionalTestsSampleMaskingTexturesTest (m_context) ); 208 functionalTestGroup->addChild( 209 new glcts::MultisampleTextureFunctionalTestsTextureSizeFragmentShadersTest(m_context)); 210 functionalTestGroup->addChild(new glcts::MultisampleTextureFunctionalTestsTextureSizeVertexShadersTest(m_context)); 211} 212} /* glcts namespace */ 213