/*------------------------------------------------------------------------- * 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