blob: f8b80890cc4da813b40294b9fdec0eddbda301ce [file] [log] [blame]
/*-------------------------------------------------------------------------
* OpenGL Conformance Test Suite
* -----------------------------
*
* Copyright (c) 2014-2016 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/ /*!
* \file
* \brief
*/ /*-------------------------------------------------------------------*/
/**
*/ /*!
* \file es31cTextureStorageMultisampleTests.cpp
* \brief Implements test group consisting of all the tests verifying
* multisample texture functionality. (ES3.1 only)
*/ /*-------------------------------------------------------------------*/
#include "es31cTextureStorageMultisampleTests.hpp"
#include "es31cTextureStorageMultisampleDependenciesTests.hpp"
#include "es31cTextureStorageMultisampleFunctionalTests.hpp"
#include "es31cTextureStorageMultisampleGLCoverageTests.hpp"
#include "es31cTextureStorageMultisampleGetActiveUniformTests.hpp"
#include "es31cTextureStorageMultisampleGetMultisamplefvTests.hpp"
#include "es31cTextureStorageMultisampleGetTexLevelParameterifvTests.hpp"
#include "es31cTextureStorageMultisampleSampleMaskiTests.hpp"
#include "es31cTextureStorageMultisampleTexStorage2DMultisampleTests.hpp"
#include "es31cTextureStorageMultisampleTexStorage3DMultisampleTests.hpp"
namespace glcts
{
/** Constructor.
*
* @param context Rendering context.
**/
TextureStorageMultisampleTests::TextureStorageMultisampleTests(Context& context)
: TestCaseGroup(context, "texture_storage_multisample", "Multisample texture storage conformance test group")
{
/* Left blank on purpose */
}
/** Initializes a texture_storage_multisample test group.
*
**/
void TextureStorageMultisampleTests::init(void)
{
/* Creating Tests Groups */
tcu::TestCaseGroup* apiGLGetActiveUniformTestGroup =
new tcu::TestCaseGroup(m_testCtx, "APIGLGetActiveUniform", "glGetActiveUniform()");
tcu::TestCaseGroup* apiGLTexStorage2DMultisampleTestGroup =
new tcu::TestCaseGroup(m_testCtx, "APIGLTexStorage2DMultisample", "glTexStorage2DMultisample()");
tcu::TestCaseGroup* apiGLTexStorage3DMultisampleTestGroup =
new tcu::TestCaseGroup(m_testCtx, "APIGLTexStorage3DMultisample", "glTexStorage3DMultisampleOES()");
tcu::TestCaseGroup* apiGLGetMultisamplefvTestGroup =
new tcu::TestCaseGroup(m_testCtx, "APIGLGetMultisamplefv", "glGetMultisamplefv()");
tcu::TestCaseGroup* apiGLGetTexLevelParameterifvTestGroup =
new tcu::TestCaseGroup(m_testCtx, "APIGLGetTexLevelParameterifv", "glGetTexLevelParameterifv()");
tcu::TestCaseGroup* apiGLSampleMaskiTestGroup =
new tcu::TestCaseGroup(m_testCtx, "APIGLSampleMaski", "glSampleMaski()");
tcu::TestCaseGroup* apiDependenciesTestGroup =
new tcu::TestCaseGroup(m_testCtx, "APIDependencies", "API Dependncies");
tcu::TestCaseGroup* apiGLCoverageTestGroup = new tcu::TestCaseGroup(m_testCtx, "GLCoverage", "GL Coverage");
tcu::TestCaseGroup* functionalTestGroup = new tcu::TestCaseGroup(m_testCtx, "FunctionalTests", "Functional Tests");
/* Adding tests groups as children of this test suite */
addChild(apiGLGetActiveUniformTestGroup);
addChild(apiGLTexStorage2DMultisampleTestGroup);
addChild(apiGLTexStorage3DMultisampleTestGroup);
addChild(apiGLGetMultisamplefvTestGroup);
addChild(apiGLGetTexLevelParameterifvTestGroup);
addChild(apiGLSampleMaskiTestGroup);
addChild(apiDependenciesTestGroup);
addChild(apiGLCoverageTestGroup);
addChild(functionalTestGroup);
/* Assign tests to parent group: APIGLGetActiveUniform */
apiGLGetActiveUniformTestGroup->addChild(new glcts::MultisampleTextureGetActiveUniformSamplersTest(m_context));
/* Assign tests to parent group: APIGLTexStorage2DMultisample */
apiGLTexStorage2DMultisampleTestGroup->addChild(
new glcts::MultisampleTextureTexStorage2DGeneralSamplesNumberTest(m_context));
apiGLTexStorage2DMultisampleTestGroup->addChild(
new glcts::MultisampleTextureTexStorage2DInvalidAndBorderCaseTextureSizesTest(m_context));
apiGLTexStorage2DMultisampleTestGroup->addChild(
new glcts::MultisampleTextureTexStorage2DNonColorDepthOrStencilInternalFormatsTest(m_context));
apiGLTexStorage2DMultisampleTestGroup->addChild(
new glcts::MultisampleTextureTexStorage2DReconfigurationRejectedTest(m_context));
apiGLTexStorage2DMultisampleTestGroup->addChild(
new glcts::MultisampleTextureTexStorage2DTexture2DMultisampleArrayTest(m_context));
apiGLTexStorage2DMultisampleTestGroup->addChild(
new glcts::MultisampleTextureTexStorage2DUnsupportedSamplesCountForColorTexturesTest(m_context));
apiGLTexStorage2DMultisampleTestGroup->addChild(
new glcts::MultisampleTextureTexStorage2DUnsupportedSamplesCountForDepthTexturesTest(m_context));
apiGLTexStorage2DMultisampleTestGroup->addChild(
new glcts::MultisampleTextureTexStorage2DUnsupportedSamplesCountForDepthStencilTexturesTest(m_context));
apiGLTexStorage2DMultisampleTestGroup->addChild(new glcts::MultisampleTextureTexStorage2DValidCallsTest(m_context));
apiGLTexStorage2DMultisampleTestGroup->addChild(new glcts::MultisampleTextureTexStorage2DZeroSampleTest(m_context));
/* Assign tests to parent group: APIGLTexStorage3DMultisample */
apiGLTexStorage3DMultisampleTestGroup->addChild(
new glcts::InvalidTextureSizesAreRejectedValidAreAcceptedTest(m_context));
apiGLTexStorage3DMultisampleTestGroup->addChild(new glcts::MultisampleTextureTexStorage3DZeroSampleTest(m_context));
apiGLTexStorage3DMultisampleTestGroup->addChild(
new glcts::NonColorDepthStencilRenderableInternalformatsAreRejectedTest(m_context));
apiGLTexStorage3DMultisampleTestGroup->addChild(
new glcts::RequestsToSetUpMultisampleColorTexturesWithUnsupportedNumberOfSamplesAreRejectedTest(m_context));
apiGLTexStorage3DMultisampleTestGroup->addChild(
new glcts::RequestsToSetUpMultisampleDepthTexturesWithUnsupportedNumberOfSamplesAreRejectedTest(m_context));
apiGLTexStorage3DMultisampleTestGroup->addChild(
new glcts::RequestsToSetUpMultisampleStencilTexturesWithUnsupportedNumberOfSamplesAreRejectedTest(m_context));
apiGLTexStorage3DMultisampleTestGroup->addChild(
new glcts::RequestsToSetUpMultisampleTexturesWithValidAndInvalidNumberOfSamplesTest(m_context));
apiGLTexStorage3DMultisampleTestGroup->addChild(new glcts::Texture2DMultisampleTargetIsRejectedTest(m_context));
apiGLTexStorage3DMultisampleTestGroup->addChild(
new glcts::ValidInternalformatAndSamplesValuesAreAcceptedTest(m_context));
/* Assign tests to parent group: APIGLGetMultisamplefv */
apiGLGetMultisamplefvTestGroup->addChild(
new glcts::MultisampleTextureGetMultisamplefvIndexEqualGLSamplesRejectedTest(m_context));
apiGLGetMultisamplefvTestGroup->addChild(
new glcts::MultisampleTextureGetMultisamplefvIndexGreaterGLSamplesRejectedTest(m_context));
apiGLGetMultisamplefvTestGroup->addChild(
new glcts::MultisampleTextureGetMultisamplefvInvalidPnameRejectedTest(m_context));
apiGLGetMultisamplefvTestGroup->addChild(
new glcts::MultisampleTextureGetMultisamplefvNullValArgumentsAcceptedTest(m_context));
apiGLGetMultisamplefvTestGroup->addChild(
new glcts::MultisampleTextureGetMultisamplefvSamplePositionValuesValidationTest(m_context));
/* Assign tests to parent group: APIGLGetTexLevelParameterifv */
apiGLGetTexLevelParameterifvTestGroup->addChild(
new glcts::MultisampleTextureGetTexLevelParametervFunctionalTest(m_context));
apiGLGetTexLevelParameterifvTestGroup->addChild(
new glcts::MultisampleTextureGetTexLevelParametervInvalidTextureTargetRejectedTest(m_context));
apiGLGetTexLevelParameterifvTestGroup->addChild(
new glcts::MultisampleTextureGetTexLevelParametervInvalidValueArgumentRejectedTest(m_context));
apiGLGetTexLevelParameterifvTestGroup->addChild(
new glcts::MultisampleTextureGetTexLevelParametervNegativeLodIsRejectedTest(m_context));
apiGLGetTexLevelParameterifvTestGroup->addChild(
new glcts::MultisampleTextureGetTexLevelParametervWorksForMaximumLodTest(m_context));
/* Assign tests to parent group: APIGLSampleMaski */
apiGLGetMultisamplefvTestGroup->addChild(new glcts::MultisampleTextureSampleMaskiGettersTest(m_context));
apiGLGetMultisamplefvTestGroup->addChild(
new glcts::MultisampleTextureSampleMaskiIndexLowerThanGLMaxSampleMaskWordsTest(m_context));
apiGLGetMultisamplefvTestGroup->addChild(
new glcts::MultisampleTextureSampleMaskiIndexEqualToGLMaxSampleMaskWordsTest(m_context));
apiGLGetMultisamplefvTestGroup->addChild(
new glcts::MultisampleTextureSampleMaskiIndexGreaterGLMaxSampleMaskWordsTest(m_context));
/* Assign tests to parent group: APIDependencies */
apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesFBOIncompleteness1Test(m_context));
apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesFBOIncompleteness2Test(m_context));
apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesFBOIncompleteness3Test(m_context));
apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesFBOIncompleteness4Test(m_context));
apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesFBOIncompleteness5Test(m_context));
apiDependenciesTestGroup->addChild(
new glcts::MultisampleTextureDependenciesInvalidFramebufferTexture2DCalls1Test(m_context));
apiDependenciesTestGroup->addChild(
new glcts::MultisampleTextureDependenciesInvalidFramebufferTexture2DCalls2Test(m_context));
apiDependenciesTestGroup->addChild(
new glcts::MultisampleTextureDependenciesInvalidFramebufferTextureLayerCalls1Test(m_context));
apiDependenciesTestGroup->addChild(
new glcts::MultisampleTextureDependenciesInvalidFramebufferTextureLayerCalls2Test(m_context));
apiDependenciesTestGroup->addChild(
new glcts::MultisampleTextureDependenciesInvalidRenderbufferStorageMultisampleCalls1Test(m_context));
apiDependenciesTestGroup->addChild(
new glcts::MultisampleTextureDependenciesInvalidRenderbufferStorageMultisampleCalls2Test(m_context));
apiDependenciesTestGroup->addChild(
new glcts::MultisampleTextureDependenciesNoErrorGeneratedForValidFramebufferTexture2DCallsTest(m_context));
apiDependenciesTestGroup->addChild(
new glcts::MultisampleTextureDependenciesNoErrorGeneratedForValidRenderbufferStorageMultisampleCallsTest(
m_context));
apiDependenciesTestGroup->addChild(new glcts::MultisampleTextureDependenciesTexParameterTest(m_context));
/* Assign tests to parent group: GLCoverage */
apiGLCoverageTestGroup->addChild(new glcts::GLCoverageExtensionSpecificEnumsAreRecognizedTest(m_context));
apiGLCoverageTestGroup->addChild(
new glcts::GLCoverageGLGetTexParameterReportsCorrectDefaultValuesForMultisampleTextureTargets(m_context));
apiGLCoverageTestGroup->addChild(new glcts::GLCoverageGLSampleMaskModeStatusIsReportedCorrectlyTest(m_context));
apiGLCoverageTestGroup->addChild(
new glcts::GLCoverageGLTexParameterHandlersAcceptZeroBaseLevelForExtensionSpecificTextureTargetsTest(
m_context));
/* Assign tests to parent group: FunctionalTests */
functionalTestGroup->addChild(new glcts::MultisampleTextureFunctionalTestsBlittingTest(m_context));
functionalTestGroup->addChild(
new glcts::MultisampleTextureFunctionalTestsBlittingMultisampledDepthAttachmentTest(m_context));
functionalTestGroup->addChild(
new glcts::MultisampleTextureFunctionalTestsBlittingMultisampledIntegerAttachmentTest(m_context));
functionalTestGroup->addChild(
new glcts::MultisampleTextureFunctionalTestsBlittingToMultisampledFBOIsForbiddenTest(m_context));
functionalTestGroup->addChild(
new glcts::MultisampleTextureFunctionalTestsSampleMaskingForNonIntegerColorRenderableTexturesTest(m_context));
// TODO: temporarily disabled per request. Needs to be fixed.
//functionalTestGroup->addChild(new glcts::MultisampleTextureFunctionalTestsSampleMaskingTexturesTest (m_context) );
functionalTestGroup->addChild(
new glcts::MultisampleTextureFunctionalTestsTextureSizeFragmentShadersTest(m_context));
functionalTestGroup->addChild(new glcts::MultisampleTextureFunctionalTestsTextureSizeVertexShadersTest(m_context));
}
} /* glcts namespace */