blob: 6cf84ccab3688a0340d794c11dc8df90eddb1b3a [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
*/ /*-------------------------------------------------------------------*/
#include "esextcTextureCubeMapArrayTests.hpp"
#include "esextcTextureCubeMapArrayColorDepthAttachments.hpp"
#include "esextcTextureCubeMapArrayETC2Support.hpp"
#include "esextcTextureCubeMapArrayFBOIncompleteness.hpp"
#include "esextcTextureCubeMapArrayGenerateMipMap.hpp"
#include "esextcTextureCubeMapArrayGetterCalls.hpp"
#include "esextcTextureCubeMapArrayImageOperations.hpp"
#include "esextcTextureCubeMapArrayImageTextureSize.hpp"
#include "esextcTextureCubeMapArraySampling.hpp"
#include "esextcTextureCubeMapArrayStencilAttachments.hpp"
#include "esextcTextureCubeMapArraySubImage3D.hpp"
#include "esextcTextureCubeMapArrayTex3DValidation.hpp"
namespace glcts
{
/** Constructor
*
* @param context Test context
* @param glslVersion GLSL version
**/
TextureCubeMapArrayTests::TextureCubeMapArrayTests(glcts::Context& context, const ExtParameters& extParams)
: TestCaseGroupBase(context, extParams, "texture_cube_map_array", "Texture Cube Map Array Tests")
{
/* No implementation needed */
}
/** Initializes test cases for texture cube map array tests
**/
void TextureCubeMapArrayTests::init(void)
{
/* Initialize base class */
TestCaseGroupBase::init();
/* Texture Cube Map Array Sampling (Test 1) */
addChild(new TextureCubeMapArraySamplingTest(m_context, m_extParams, "sampling", "Test 1"));
/* Texture Cube Map Array Attachment (Test 2) */
addChild(
new TextureCubeMapArrayColorDepthAttachmentsTest(m_context, m_extParams, "color_depth_attachments", "Test 2"));
/* Texture Cube Map Array Stencil Attachments (Test 3) */
addChild(new TextureCubeMapArrayStencilAttachments(m_context, m_extParams, "stencil_attachments_mutable_nonlayered",
"Test 3", false, false));
addChild(new TextureCubeMapArrayStencilAttachments(m_context, m_extParams, "stencil_attachments_mutable_layered",
"Test 3", false, true));
addChild(new TextureCubeMapArrayStencilAttachments(
m_context, m_extParams, "stencil_attachments_immutable_nonlayered", "Test 3", true, false));
addChild(new TextureCubeMapArrayStencilAttachments(m_context, m_extParams, "stencil_attachments_immutable_layered",
"Test 3", true, true));
/* Texture Cube Map Array glTexImage3D() and glTexStorage3D() Validation (Test 4) */
addChild(new TextureCubeMapArrayTex3DValidation(m_context, m_extParams, "tex3D_validation", "Test 4"));
/* Texture Cube Map Array SubImage3D() (Test 5) */
addChild(new TextureCubeMapArraySubImage3D(m_context, m_extParams, "subimage3D", "Test 5"));
/* Texture Cube Map Array Getter Calls (Test 6) */
addChild(new TextureCubeMapArrayGetterCalls(m_context, m_extParams, "getter_calls", "Test 6"));
/* Texture Cube Map Array glGenerateMipmap() Validation (Test 7) */
addChild(new TextureCubeMapArrayGenerateMipMapFilterable(
m_context, m_extParams, "generate_mip_map_filterable_internalformat_mutable",
"Test 7.1 filterable internalformat - mutable storage", ST_MUTABLE));
addChild(new TextureCubeMapArrayGenerateMipMapFilterable(
m_context, m_extParams, "generate_mip_map_filterable_internalformat_immutable",
"Test 7.1 filterable internalformat - immutable storage", ST_IMMUTABLE));
/* The following tests, as written, are only applicable to ES. */
addChild(new TextureCubeMapArrayGenerateMipMapNonFilterable(
m_context, m_extParams, "generate_mip_map_non_filterable_mutable_storage",
"Test 7.2 non-filterable format - mutable storage", ST_MUTABLE));
addChild(new TextureCubeMapArrayGenerateMipMapNonFilterable(
m_context, m_extParams, "generate_mip_map_non_filterable_immutable_storage",
"Test 7.2 non-filterable format - immutable storage", ST_IMMUTABLE));
/* Texture Cube Map Array Image Operations (Test 8) */
addChild(new TextureCubeMapArrayImageOpCompute(m_context, m_extParams, "image_op_compute_sh",
"Test 8 compute shader", STC_COMPUTE_SHADER));
addChild(new TextureCubeMapArrayImageOpCompute(m_context, m_extParams, "image_op_vertex_sh", "Test 8 vertex shader",
STC_VERTEX_SHADER));
addChild(new TextureCubeMapArrayImageOpCompute(m_context, m_extParams, "image_op_fragment_sh",
"Test 8 fragment shader", STC_FRAGMENT_SHADER));
addChild(new TextureCubeMapArrayImageOpCompute(m_context, m_extParams, "image_op_geometry_sh",
"Test 8 geometry shader", STC_GEOMETRY_SHADER));
addChild(new TextureCubeMapArrayImageOpCompute(m_context, m_extParams, "image_op_tessellation_control_sh",
"Test 8 tessellation control shader ",
STC_TESSELLATION_CONTROL_SHADER));
addChild(new TextureCubeMapArrayImageOpCompute(m_context, m_extParams, "image_op_tessellation_evaluation_sh",
"Test 8 tessellation evaluation sahder",
STC_TESSELLATION_EVALUATION_SHADER));
/* Texture Cube Map Array FBO incompleteness (Test 9) */
addChild(new TextureCubeMapArrayFBOIncompleteness(m_context, m_extParams, "fbo_incompleteness", "Test 9"));
/* textureSize and imageSize validation (Test 10) */
addChild(new TextureCubeMapArrayTextureSizeTFVertexShader(m_context, m_extParams, "texture_size_vertex_sh",
"test 10.1"));
addChild(new TextureCubeMapArrayTextureSizeTFGeometryShader(m_context, m_extParams, "texture_size_geometry_sh",
"test 10.2"));
addChild(new TextureCubeMapArrayTextureSizeTFTessControlShader(m_context, m_extParams,
"texture_size_tesselation_con_sh", "test 10.3"));
addChild(new TextureCubeMapArrayTextureSizeTFTessEvaluationShader(m_context, m_extParams,
"texture_size_tesselation_ev_sh", "test 10.4"));
addChild(new TextureCubeMapArrayTextureSizeRTFragmentShader(m_context, m_extParams, "texture_size_fragment_sh",
"test 10.5"));
addChild(new TextureCubeMapArrayTextureSizeRTComputeShader(m_context, m_extParams, "texture_size_compute_sh",
"test 10.6"));
/* Cube Map Array support for ETC2 textures (Test 11) */
glu::ContextType contextType = m_context.getRenderContext().getType();
if (glu::isContextTypeGLCore(contextType) || glu::contextSupports(contextType, glu::ApiType::es(3, 2)))
addChild(new TextureCubeMapArrayETC2Support(m_context, m_extParams, "etc2_texture", "test 11"));
}
} // namespace glcts