• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
42 namespace glcts
43 {
44 /** Constructor.
45  *
46  *  @param context Rendering context.
47  **/
TextureStorageMultisampleTests(Context & context)48 TextureStorageMultisampleTests::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  **/
init(void)57 void 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 } // namespace glcts
213