1e5c31af7Sopenharmony_ci/*------------------------------------------------------------------------- 2e5c31af7Sopenharmony_ci * drawElements Quality Program OpenGL ES 3.1 Module 3e5c31af7Sopenharmony_ci * ------------------------------------------------- 4e5c31af7Sopenharmony_ci * 5e5c31af7Sopenharmony_ci * Copyright 2014 The Android Open Source Project 6e5c31af7Sopenharmony_ci * 7e5c31af7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 8e5c31af7Sopenharmony_ci * you may not use this file except in compliance with the License. 9e5c31af7Sopenharmony_ci * You may obtain a copy of the License at 10e5c31af7Sopenharmony_ci * 11e5c31af7Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 12e5c31af7Sopenharmony_ci * 13e5c31af7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 14e5c31af7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 15e5c31af7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16e5c31af7Sopenharmony_ci * See the License for the specific language governing permissions and 17e5c31af7Sopenharmony_ci * limitations under the License. 18e5c31af7Sopenharmony_ci * 19e5c31af7Sopenharmony_ci *//*! 20e5c31af7Sopenharmony_ci * \file 21e5c31af7Sopenharmony_ci * \brief Functional Tests. 22e5c31af7Sopenharmony_ci *//*--------------------------------------------------------------------*/ 23e5c31af7Sopenharmony_ci 24e5c31af7Sopenharmony_ci#include "es31fFunctionalTests.hpp" 25e5c31af7Sopenharmony_ci 26e5c31af7Sopenharmony_ci#include "glsShaderLibrary.hpp" 27e5c31af7Sopenharmony_ci#include "es31fBasicComputeShaderTests.hpp" 28e5c31af7Sopenharmony_ci#include "es31fComputeShaderBuiltinVarTests.hpp" 29e5c31af7Sopenharmony_ci#include "es31fDrawTests.hpp" 30e5c31af7Sopenharmony_ci#include "es31fShaderSharedVarTests.hpp" 31e5c31af7Sopenharmony_ci#include "es31fAtomicCounterTests.hpp" 32e5c31af7Sopenharmony_ci#include "es31fShaderAtomicOpTests.hpp" 33e5c31af7Sopenharmony_ci#include "es31fShaderImageLoadStoreTests.hpp" 34e5c31af7Sopenharmony_ci#include "es31fTessellationTests.hpp" 35e5c31af7Sopenharmony_ci#include "es31fSSBOLayoutTests.hpp" 36e5c31af7Sopenharmony_ci#include "es31fSSBOArrayLengthTests.hpp" 37e5c31af7Sopenharmony_ci#include "es31fShaderCommonFunctionTests.hpp" 38e5c31af7Sopenharmony_ci#include "es31fShaderPackingFunctionTests.hpp" 39e5c31af7Sopenharmony_ci#include "es31fShaderIntegerFunctionTests.hpp" 40e5c31af7Sopenharmony_ci#include "es31fStencilTexturingTests.hpp" 41e5c31af7Sopenharmony_ci#include "es31fShaderTextureSizeTests.hpp" 42e5c31af7Sopenharmony_ci#include "es31fShaderStateQueryTests.hpp" 43e5c31af7Sopenharmony_ci#include "es31fLayoutBindingTests.hpp" 44e5c31af7Sopenharmony_ci#include "es31fTextureLevelStateQueryTests.hpp" 45e5c31af7Sopenharmony_ci#include "es31fIntegerStateQueryTests.hpp" 46e5c31af7Sopenharmony_ci#include "es31fInternalFormatQueryTests.hpp" 47e5c31af7Sopenharmony_ci#include "es31fBooleanStateQueryTests.hpp" 48e5c31af7Sopenharmony_ci#include "es31fIndexedStateQueryTests.hpp" 49e5c31af7Sopenharmony_ci#include "es31fTextureStateQueryTests.hpp" 50e5c31af7Sopenharmony_ci#include "es31fFramebufferDefaultStateQueryTests.hpp" 51e5c31af7Sopenharmony_ci#include "es31fProgramPipelineStateQueryTests.hpp" 52e5c31af7Sopenharmony_ci#include "es31fProgramStateQueryTests.hpp" 53e5c31af7Sopenharmony_ci#include "es31fSamplerStateQueryTests.hpp" 54e5c31af7Sopenharmony_ci#include "es31fTextureFilteringTests.hpp" 55e5c31af7Sopenharmony_ci#include "es31fTextureFormatTests.hpp" 56e5c31af7Sopenharmony_ci#include "es31fTextureSpecificationTests.hpp" 57e5c31af7Sopenharmony_ci#include "es31fTextureMultisampleTests.hpp" 58e5c31af7Sopenharmony_ci#include "es31fMultisampleTests.hpp" 59e5c31af7Sopenharmony_ci#include "es31fSynchronizationTests.hpp" 60e5c31af7Sopenharmony_ci#include "es31fGeometryShaderTests.hpp" 61e5c31af7Sopenharmony_ci#include "es31fSampleShadingTests.hpp" 62e5c31af7Sopenharmony_ci#include "es31fSampleVariableTests.hpp" 63e5c31af7Sopenharmony_ci#include "es31fIndirectComputeDispatchTests.hpp" 64e5c31af7Sopenharmony_ci#include "es31fVertexAttributeBindingTests.hpp" 65e5c31af7Sopenharmony_ci#include "es31fVertexAttributeBindingStateQueryTests.hpp" 66e5c31af7Sopenharmony_ci#include "es31fShaderMultisampleInterpolationTests.hpp" 67e5c31af7Sopenharmony_ci#include "es31fShaderMultisampleInterpolationStateQueryTests.hpp" 68e5c31af7Sopenharmony_ci#include "es31fProgramUniformTests.hpp" 69e5c31af7Sopenharmony_ci#include "es31fOpaqueTypeIndexingTests.hpp" 70e5c31af7Sopenharmony_ci#include "es31fAdvancedBlendTests.hpp" 71e5c31af7Sopenharmony_ci#include "es31fSeparateShaderTests.hpp" 72e5c31af7Sopenharmony_ci#include "es31fUniformLocationTests.hpp" 73e5c31af7Sopenharmony_ci#include "es31fBuiltinPrecisionTests.hpp" 74e5c31af7Sopenharmony_ci#include "es31fTessellationGeometryInteractionTests.hpp" 75e5c31af7Sopenharmony_ci#include "es31fUniformBlockTests.hpp" 76e5c31af7Sopenharmony_ci#include "es31fDebugTests.hpp" 77e5c31af7Sopenharmony_ci#include "es31fFboColorbufferTests.hpp" 78e5c31af7Sopenharmony_ci#include "es31fFboNoAttachmentTests.hpp" 79e5c31af7Sopenharmony_ci#include "es31fFboSRGBWriteControlTests.hpp" 80e5c31af7Sopenharmony_ci#include "es31fProgramInterfaceQueryTests.hpp" 81e5c31af7Sopenharmony_ci#include "es31fTextureGatherTests.hpp" 82e5c31af7Sopenharmony_ci#include "es31fTextureFormatTests.hpp" 83e5c31af7Sopenharmony_ci#include "es31fTextureBufferTests.hpp" 84e5c31af7Sopenharmony_ci#include "es31fTextureBorderClampTests.hpp" 85e5c31af7Sopenharmony_ci#include "es31fShaderBuiltinConstantTests.hpp" 86e5c31af7Sopenharmony_ci#include "es31fShaderHelperInvocationTests.hpp" 87e5c31af7Sopenharmony_ci#include "es31fPrimitiveBoundingBoxTests.hpp" 88e5c31af7Sopenharmony_ci#include "es31fAndroidExtensionPackES31ATests.hpp" 89e5c31af7Sopenharmony_ci#include "es31fCopyImageTests.hpp" 90e5c31af7Sopenharmony_ci#include "es31fDefaultVertexArrayObjectTests.hpp" 91e5c31af7Sopenharmony_ci#include "es31fSRGBDecodeTests.hpp" 92e5c31af7Sopenharmony_ci#include "es31fDrawElementsBaseVertexTests.hpp" 93e5c31af7Sopenharmony_ci#include "es31fShaderFramebufferFetchTests.hpp" 94e5c31af7Sopenharmony_ci#include "es31fShaderUniformIntegerFunctionTests.hpp" 95e5c31af7Sopenharmony_ci 96e5c31af7Sopenharmony_cinamespace deqp 97e5c31af7Sopenharmony_ci{ 98e5c31af7Sopenharmony_cinamespace gles31 99e5c31af7Sopenharmony_ci{ 100e5c31af7Sopenharmony_cinamespace Functional 101e5c31af7Sopenharmony_ci{ 102e5c31af7Sopenharmony_ci 103e5c31af7Sopenharmony_ciclass ShaderLibraryTest : public TestCaseGroup 104e5c31af7Sopenharmony_ci{ 105e5c31af7Sopenharmony_cipublic: 106e5c31af7Sopenharmony_ci ShaderLibraryTest (Context& context, const char* filename, const char* name, const char* description) 107e5c31af7Sopenharmony_ci : TestCaseGroup (context, name, description) 108e5c31af7Sopenharmony_ci , m_filename (filename) 109e5c31af7Sopenharmony_ci { 110e5c31af7Sopenharmony_ci } 111e5c31af7Sopenharmony_ci 112e5c31af7Sopenharmony_ci void init (void) 113e5c31af7Sopenharmony_ci { 114e5c31af7Sopenharmony_ci gls::ShaderLibrary shaderLibrary(m_testCtx, m_context.getRenderContext(), m_context.getContextInfo()); 115e5c31af7Sopenharmony_ci std::string fileName = m_filename; 116e5c31af7Sopenharmony_ci std::vector<tcu::TestNode*> children = shaderLibrary.loadShaderFile(fileName.c_str()); 117e5c31af7Sopenharmony_ci 118e5c31af7Sopenharmony_ci for (int i = 0; i < (int)children.size(); i++) 119e5c31af7Sopenharmony_ci addChild(children[i]); 120e5c31af7Sopenharmony_ci } 121e5c31af7Sopenharmony_ci 122e5c31af7Sopenharmony_ciprivate: 123e5c31af7Sopenharmony_ci const std::string m_filename; 124e5c31af7Sopenharmony_ci}; 125e5c31af7Sopenharmony_ci 126e5c31af7Sopenharmony_ciclass ShaderLibraryGroup : public TestCaseGroup 127e5c31af7Sopenharmony_ci{ 128e5c31af7Sopenharmony_cipublic: 129e5c31af7Sopenharmony_ci struct File 130e5c31af7Sopenharmony_ci { 131e5c31af7Sopenharmony_ci const char* fileName; 132e5c31af7Sopenharmony_ci const char* testName; 133e5c31af7Sopenharmony_ci const char* description; 134e5c31af7Sopenharmony_ci }; 135e5c31af7Sopenharmony_ci 136e5c31af7Sopenharmony_ci ShaderLibraryGroup (Context& context, const char* name, const char* description, int numFiles, const File* files) 137e5c31af7Sopenharmony_ci : TestCaseGroup (context, name, description) 138e5c31af7Sopenharmony_ci , m_numFiles (numFiles) 139e5c31af7Sopenharmony_ci , m_files (files) 140e5c31af7Sopenharmony_ci {} 141e5c31af7Sopenharmony_ci 142e5c31af7Sopenharmony_ci void init (void) 143e5c31af7Sopenharmony_ci { 144e5c31af7Sopenharmony_ci for (int ndx = 0; ndx < m_numFiles; ++ndx) 145e5c31af7Sopenharmony_ci addChild(new ShaderLibraryTest(m_context, m_files[ndx].fileName, m_files[ndx].testName, m_files[ndx].description)); 146e5c31af7Sopenharmony_ci } 147e5c31af7Sopenharmony_ci 148e5c31af7Sopenharmony_ciprivate: 149e5c31af7Sopenharmony_ci const int m_numFiles; 150e5c31af7Sopenharmony_ci const File* const m_files; 151e5c31af7Sopenharmony_ci}; 152e5c31af7Sopenharmony_ci 153e5c31af7Sopenharmony_ciclass ShaderBuiltinVarTests : public TestCaseGroup 154e5c31af7Sopenharmony_ci{ 155e5c31af7Sopenharmony_cipublic: 156e5c31af7Sopenharmony_ci ShaderBuiltinVarTests (Context& context) 157e5c31af7Sopenharmony_ci : TestCaseGroup(context, "builtin_var", "Shader Built-in Variable Tests") 158e5c31af7Sopenharmony_ci { 159e5c31af7Sopenharmony_ci } 160e5c31af7Sopenharmony_ci 161e5c31af7Sopenharmony_ci void init (void) 162e5c31af7Sopenharmony_ci { 163e5c31af7Sopenharmony_ci addChild(new ComputeShaderBuiltinVarTests(m_context)); 164e5c31af7Sopenharmony_ci } 165e5c31af7Sopenharmony_ci}; 166e5c31af7Sopenharmony_ci 167e5c31af7Sopenharmony_ciclass ShaderBuiltinFunctionTests : public TestCaseGroup 168e5c31af7Sopenharmony_ci{ 169e5c31af7Sopenharmony_cipublic: 170e5c31af7Sopenharmony_ci ShaderBuiltinFunctionTests (Context& context) 171e5c31af7Sopenharmony_ci : TestCaseGroup(context, "builtin_functions", "Built-in Function Tests") 172e5c31af7Sopenharmony_ci { 173e5c31af7Sopenharmony_ci } 174e5c31af7Sopenharmony_ci 175e5c31af7Sopenharmony_ci void init (void) 176e5c31af7Sopenharmony_ci { 177e5c31af7Sopenharmony_ci addChild(new ShaderCommonFunctionTests (m_context)); 178e5c31af7Sopenharmony_ci addChild(new ShaderPackingFunctionTests (m_context)); 179e5c31af7Sopenharmony_ci addChild(new ShaderIntegerFunctionTests (m_context)); 180e5c31af7Sopenharmony_ci addChild(new ShaderUniformIntegerFunctionTests (m_context)); 181e5c31af7Sopenharmony_ci addChild(new ShaderTextureSizeTests (m_context)); 182e5c31af7Sopenharmony_ci addChild(createBuiltinPrecisionTests (m_context)); 183e5c31af7Sopenharmony_ci } 184e5c31af7Sopenharmony_ci}; 185e5c31af7Sopenharmony_ci 186e5c31af7Sopenharmony_ciclass ShaderLinkageTests : public TestCaseGroup 187e5c31af7Sopenharmony_ci{ 188e5c31af7Sopenharmony_cipublic: 189e5c31af7Sopenharmony_ci ShaderLinkageTests (Context& context, bool isGL45) 190e5c31af7Sopenharmony_ci : TestCaseGroup(context, "linkage", "Linkage Tests") 191e5c31af7Sopenharmony_ci , m_isGL45(isGL45) 192e5c31af7Sopenharmony_ci { 193e5c31af7Sopenharmony_ci } 194e5c31af7Sopenharmony_ci 195e5c31af7Sopenharmony_ciprivate: 196e5c31af7Sopenharmony_ci bool m_isGL45; 197e5c31af7Sopenharmony_ci 198e5c31af7Sopenharmony_ci void init (void) 199e5c31af7Sopenharmony_ci { 200e5c31af7Sopenharmony_ci static const ShaderLibraryGroup::File s_filesES31[] = 201e5c31af7Sopenharmony_ci { 202e5c31af7Sopenharmony_ci { "shaders/es31/declarations.test", "declarations", "Declarations" }, 203e5c31af7Sopenharmony_ci { "shaders/es31/linkage_geometry.test", "geometry", "Geometry shader" }, 204e5c31af7Sopenharmony_ci { "shaders/es31/linkage_tessellation.test", "tessellation", "Tessellation shader" }, 205e5c31af7Sopenharmony_ci { "shaders/es31/linkage_tessellation_geometry.test", "tessellation_geometry", "Tessellation and geometry shader" }, 206e5c31af7Sopenharmony_ci { "shaders/es31/linkage_shader_storage_block.test", "shader_storage_block", "Shader storage blocks" }, 207e5c31af7Sopenharmony_ci { "shaders/es31/linkage_io_block.test", "io_block", "Shader io blocks" }, 208e5c31af7Sopenharmony_ci { "shaders/es31/linkage_uniform.test", "uniform", "Uniform linkage" }, 209e5c31af7Sopenharmony_ci }; 210e5c31af7Sopenharmony_ci static const ShaderLibraryGroup::File s_filesES32[] = 211e5c31af7Sopenharmony_ci { 212e5c31af7Sopenharmony_ci { "shaders/es32/linkage_geometry.test", "geometry", "Geometry shader" }, 213e5c31af7Sopenharmony_ci { "shaders/es32/linkage_tessellation.test", "tessellation", "Tessellation shader" }, 214e5c31af7Sopenharmony_ci { "shaders/es32/linkage_tessellation_geometry.test", "tessellation_geometry", "Tessellation and geometry shader" }, 215e5c31af7Sopenharmony_ci { "shaders/es32/linkage_shader_storage_block.test", "shader_storage_block", "Shader storage blocks" }, 216e5c31af7Sopenharmony_ci { "shaders/es32/linkage_io_block.test", "io_block", "Shader io blocks" }, 217e5c31af7Sopenharmony_ci { "shaders/es32/linkage_uniform.test", "uniform", "Uniform linkage" }, 218e5c31af7Sopenharmony_ci }; 219e5c31af7Sopenharmony_ci static const ShaderLibraryGroup::File s_filesGL45[] = 220e5c31af7Sopenharmony_ci { 221e5c31af7Sopenharmony_ci { "shaders/gl45/linkage_geometry.test", "geometry", "Geometry shader" }, 222e5c31af7Sopenharmony_ci { "shaders/gl45/linkage_tessellation.test", "tessellation", "Tessellation shader" }, 223e5c31af7Sopenharmony_ci { "shaders/gl45/linkage_tessellation_geometry.test", "tessellation_geometry", "Tessellation and geometry shader" }, 224e5c31af7Sopenharmony_ci { "shaders/gl45/linkage_shader_storage_block.test", "shader_storage_block", "Shader storage blocks" }, 225e5c31af7Sopenharmony_ci { "shaders/gl45/linkage_io_block.test", "io_block", "Shader io blocks" }, 226e5c31af7Sopenharmony_ci { "shaders/gl45/linkage_uniform.test", "uniform", "Uniform linkage" }, 227e5c31af7Sopenharmony_ci }; 228e5c31af7Sopenharmony_ci 229e5c31af7Sopenharmony_ci if (m_isGL45) 230e5c31af7Sopenharmony_ci addChild(new ShaderLibraryGroup(m_context, "gl45", "GL 4.5 Linkage", DE_LENGTH_OF_ARRAY(s_filesGL45), s_filesGL45)); 231e5c31af7Sopenharmony_ci else 232e5c31af7Sopenharmony_ci { 233e5c31af7Sopenharmony_ci addChild(new ShaderLibraryGroup(m_context, "es31", "GLSL ES 3.1 Linkage", DE_LENGTH_OF_ARRAY(s_filesES31), s_filesES31)); 234e5c31af7Sopenharmony_ci addChild(new ShaderLibraryGroup(m_context, "es32", "GLSL ES 3.2 Linkage", DE_LENGTH_OF_ARRAY(s_filesES32), s_filesES32)); 235e5c31af7Sopenharmony_ci } 236e5c31af7Sopenharmony_ci } 237e5c31af7Sopenharmony_ci}; 238e5c31af7Sopenharmony_ci 239e5c31af7Sopenharmony_ciclass ShaderTests : public TestCaseGroup 240e5c31af7Sopenharmony_ci{ 241e5c31af7Sopenharmony_cipublic: 242e5c31af7Sopenharmony_ci ShaderTests (Context& context, bool isGL45) 243e5c31af7Sopenharmony_ci : TestCaseGroup(context, "shaders", "Shading Language Tests") 244e5c31af7Sopenharmony_ci , m_isGL45(isGL45) 245e5c31af7Sopenharmony_ci { 246e5c31af7Sopenharmony_ci } 247e5c31af7Sopenharmony_ci 248e5c31af7Sopenharmony_ciprivate: 249e5c31af7Sopenharmony_ci bool m_isGL45; 250e5c31af7Sopenharmony_ci 251e5c31af7Sopenharmony_ci void init (void) 252e5c31af7Sopenharmony_ci { 253e5c31af7Sopenharmony_ci addChild(new ShaderBuiltinVarTests (m_context)); 254e5c31af7Sopenharmony_ci addChild(new ShaderBuiltinFunctionTests (m_context)); 255e5c31af7Sopenharmony_ci addChild(new SampleVariableTests (m_context)); 256e5c31af7Sopenharmony_ci addChild(new ShaderMultisampleInterpolationTests(m_context)); 257e5c31af7Sopenharmony_ci addChild(new OpaqueTypeIndexingTests (m_context)); 258e5c31af7Sopenharmony_ci 259e5c31af7Sopenharmony_ci { 260e5c31af7Sopenharmony_ci static const ShaderLibraryGroup::File s_functionFiles[] = 261e5c31af7Sopenharmony_ci { 262e5c31af7Sopenharmony_ci { "shaders/es31/functions.test", "es31", "GLSL ES 3.1 Function Tests" }, 263e5c31af7Sopenharmony_ci { "shaders/es32/functions.test", "es32", "GLSL ES 3.2 Function Tests" }, 264e5c31af7Sopenharmony_ci }; 265e5c31af7Sopenharmony_ci addChild(new ShaderLibraryGroup(m_context, "functions", "Function Tests", DE_LENGTH_OF_ARRAY(s_functionFiles), s_functionFiles)); 266e5c31af7Sopenharmony_ci } 267e5c31af7Sopenharmony_ci 268e5c31af7Sopenharmony_ci { 269e5c31af7Sopenharmony_ci static const ShaderLibraryGroup::File s_arraysFiles[] = 270e5c31af7Sopenharmony_ci { 271e5c31af7Sopenharmony_ci { "shaders/es31/arrays.test", "es31", "GLSL ES 3.1 Array Tests" }, 272e5c31af7Sopenharmony_ci { "shaders/es32/arrays.test", "es32", "GLSL ES 3.2 Array Tests" }, 273e5c31af7Sopenharmony_ci }; 274e5c31af7Sopenharmony_ci addChild(new ShaderLibraryGroup(m_context, "arrays", "Array Tests", DE_LENGTH_OF_ARRAY(s_arraysFiles), s_arraysFiles)); 275e5c31af7Sopenharmony_ci } 276e5c31af7Sopenharmony_ci 277e5c31af7Sopenharmony_ci { 278e5c31af7Sopenharmony_ci static const ShaderLibraryGroup::File s_arraysOfArraysFilesES[] = 279e5c31af7Sopenharmony_ci { 280e5c31af7Sopenharmony_ci { "shaders/es31/arrays_of_arrays.test", "es31", "GLSL ES 3.1 Arrays of Arrays Tests" }, 281e5c31af7Sopenharmony_ci { "shaders/es32/arrays_of_arrays.test", "es32", "GLSL ES 3.2 Arrays of Arrays Tests" }, 282e5c31af7Sopenharmony_ci }; 283e5c31af7Sopenharmony_ci 284e5c31af7Sopenharmony_ci static const ShaderLibraryGroup::File s_arraysOfArraysFilesGL[] = 285e5c31af7Sopenharmony_ci { 286e5c31af7Sopenharmony_ci { "shaders/gl45/arrays_of_arrays.test", "gl45", "GLSL 4.5 Arrays of Arrays Tests" }, 287e5c31af7Sopenharmony_ci }; 288e5c31af7Sopenharmony_ci if (m_isGL45) 289e5c31af7Sopenharmony_ci addChild(new ShaderLibraryGroup(m_context, "arrays_of_arrays", "Arrays of Arras Tests", DE_LENGTH_OF_ARRAY(s_arraysOfArraysFilesGL), s_arraysOfArraysFilesGL)); 290e5c31af7Sopenharmony_ci else 291e5c31af7Sopenharmony_ci addChild(new ShaderLibraryGroup(m_context, "arrays_of_arrays", "Arrays of Arras Tests", DE_LENGTH_OF_ARRAY(s_arraysOfArraysFilesES), s_arraysOfArraysFilesES)); 292e5c31af7Sopenharmony_ci } 293e5c31af7Sopenharmony_ci 294e5c31af7Sopenharmony_ci addChild(new ShaderLinkageTests (m_context, m_isGL45)); 295e5c31af7Sopenharmony_ci addChild(new ShaderBuiltinConstantTests (m_context)); 296e5c31af7Sopenharmony_ci addChild(new ShaderHelperInvocationTests (m_context)); 297e5c31af7Sopenharmony_ci 298e5c31af7Sopenharmony_ci { 299e5c31af7Sopenharmony_ci static const ShaderLibraryGroup::File s_implicitConversionsFilesES[] = 300e5c31af7Sopenharmony_ci { 301e5c31af7Sopenharmony_ci { "shaders/es31/implicit_conversions.test", "es31", "GLSL ES 3.1 GL_EXT_shader_implicit_conversions Tests" }, 302e5c31af7Sopenharmony_ci { "shaders/es32/implicit_conversions.test", "es32", "GLSL ES 3.2 GL_EXT_shader_implicit_conversions Tests" }, 303e5c31af7Sopenharmony_ci }; 304e5c31af7Sopenharmony_ci static const ShaderLibraryGroup::File s_implicitConversionsFilesGL[] = 305e5c31af7Sopenharmony_ci { 306e5c31af7Sopenharmony_ci { "shaders/gl45/implicit_conversions.test", "gl45", "GL45 implicit conversions Tests" }, 307e5c31af7Sopenharmony_ci }; 308e5c31af7Sopenharmony_ci if (m_isGL45) 309e5c31af7Sopenharmony_ci addChild(new ShaderLibraryGroup(m_context, "implicit_conversions", "GL45 implicit conversions Tests", DE_LENGTH_OF_ARRAY(s_implicitConversionsFilesGL), s_implicitConversionsFilesGL)); 310e5c31af7Sopenharmony_ci else 311e5c31af7Sopenharmony_ci addChild(new ShaderLibraryGroup(m_context, "implicit_conversions", "GL_EXT_shader_implicit_conversions Tests", DE_LENGTH_OF_ARRAY(s_implicitConversionsFilesES), s_implicitConversionsFilesES)); 312e5c31af7Sopenharmony_ci } 313e5c31af7Sopenharmony_ci 314e5c31af7Sopenharmony_ci { 315e5c31af7Sopenharmony_ci static const ShaderLibraryGroup::File s_uniformBlockFiles[] = 316e5c31af7Sopenharmony_ci { 317e5c31af7Sopenharmony_ci { "shaders/es31/uniform_block.test", "es31", "GLSL ES 3.1 Uniform block tests" }, 318e5c31af7Sopenharmony_ci { "shaders/es32/uniform_block.test", "es32", "GLSL ES 3.2 Uniform block tests" }, 319e5c31af7Sopenharmony_ci }; 320e5c31af7Sopenharmony_ci addChild(new ShaderLibraryGroup(m_context, "uniform_block", "Uniform block tests", DE_LENGTH_OF_ARRAY(s_uniformBlockFiles), s_uniformBlockFiles)); 321e5c31af7Sopenharmony_ci } 322e5c31af7Sopenharmony_ci 323e5c31af7Sopenharmony_ci addChild(new ShaderFramebufferFetchTests (m_context)); 324e5c31af7Sopenharmony_ci } 325e5c31af7Sopenharmony_ci}; 326e5c31af7Sopenharmony_ci 327e5c31af7Sopenharmony_ciclass ComputeTests : public TestCaseGroup 328e5c31af7Sopenharmony_ci{ 329e5c31af7Sopenharmony_cipublic: 330e5c31af7Sopenharmony_ci ComputeTests (Context& context) 331e5c31af7Sopenharmony_ci : TestCaseGroup(context, "compute", "Compute Shader Tests") 332e5c31af7Sopenharmony_ci { 333e5c31af7Sopenharmony_ci } 334e5c31af7Sopenharmony_ci 335e5c31af7Sopenharmony_ci void init (void) 336e5c31af7Sopenharmony_ci { 337e5c31af7Sopenharmony_ci addChild(new BasicComputeShaderTests (m_context)); 338e5c31af7Sopenharmony_ci addChild(new ShaderSharedVarTests (m_context)); 339e5c31af7Sopenharmony_ci addChild(new IndirectComputeDispatchTests (m_context)); 340e5c31af7Sopenharmony_ci } 341e5c31af7Sopenharmony_ci}; 342e5c31af7Sopenharmony_ci 343e5c31af7Sopenharmony_ciclass SSBOTests : public TestCaseGroup 344e5c31af7Sopenharmony_ci{ 345e5c31af7Sopenharmony_cipublic: 346e5c31af7Sopenharmony_ci SSBOTests (Context& context) 347e5c31af7Sopenharmony_ci : TestCaseGroup(context, "ssbo", "Shader Storage Buffer Object Tests") 348e5c31af7Sopenharmony_ci { 349e5c31af7Sopenharmony_ci } 350e5c31af7Sopenharmony_ci 351e5c31af7Sopenharmony_ci void init (void) 352e5c31af7Sopenharmony_ci { 353e5c31af7Sopenharmony_ci addChild(new SSBOLayoutTests (m_context)); 354e5c31af7Sopenharmony_ci addChild(new ShaderAtomicOpTests (m_context, "atomic", ATOMIC_OPERAND_BUFFER_VARIABLE)); 355e5c31af7Sopenharmony_ci addChild(new SSBOArrayLengthTests (m_context)); 356e5c31af7Sopenharmony_ci } 357e5c31af7Sopenharmony_ci}; 358e5c31af7Sopenharmony_ci 359e5c31af7Sopenharmony_ciclass TextureTests : public TestCaseGroup 360e5c31af7Sopenharmony_ci{ 361e5c31af7Sopenharmony_cipublic: 362e5c31af7Sopenharmony_ci TextureTests (Context& context, bool isGL45) 363e5c31af7Sopenharmony_ci : TestCaseGroup(context, "texture", "Texture tests") 364e5c31af7Sopenharmony_ci , m_isGL45(isGL45) 365e5c31af7Sopenharmony_ci { 366e5c31af7Sopenharmony_ci } 367e5c31af7Sopenharmony_ci 368e5c31af7Sopenharmony_ci void init (void) 369e5c31af7Sopenharmony_ci { 370e5c31af7Sopenharmony_ci addChild(new TextureFilteringTests (m_context)); 371e5c31af7Sopenharmony_ci addChild(new TextureFormatTests (m_context)); 372e5c31af7Sopenharmony_ci addChild(new TextureSpecificationTests (m_context)); 373e5c31af7Sopenharmony_ci addChild(new TextureMultisampleTests (m_context)); 374e5c31af7Sopenharmony_ci addChild(new TextureGatherTests (m_context)); 375e5c31af7Sopenharmony_ci addChild(createTextureBufferTests (m_context)); 376e5c31af7Sopenharmony_ci addChild(new TextureBorderClampTests (m_context, m_isGL45)); 377e5c31af7Sopenharmony_ci } 378e5c31af7Sopenharmony_ci 379e5c31af7Sopenharmony_ciprivate: 380e5c31af7Sopenharmony_ci bool m_isGL45; 381e5c31af7Sopenharmony_ci}; 382e5c31af7Sopenharmony_ci 383e5c31af7Sopenharmony_ciclass StateQueryTests : public TestCaseGroup 384e5c31af7Sopenharmony_ci{ 385e5c31af7Sopenharmony_cipublic: 386e5c31af7Sopenharmony_ci StateQueryTests (Context& context) 387e5c31af7Sopenharmony_ci : TestCaseGroup(context, "state_query", "State query tests") 388e5c31af7Sopenharmony_ci { 389e5c31af7Sopenharmony_ci } 390e5c31af7Sopenharmony_ci 391e5c31af7Sopenharmony_ci void init (void) 392e5c31af7Sopenharmony_ci { 393e5c31af7Sopenharmony_ci addChild(new BooleanStateQueryTests (m_context)); 394e5c31af7Sopenharmony_ci addChild(new IntegerStateQueryTests (m_context)); 395e5c31af7Sopenharmony_ci addChild(new IndexedStateQueryTests (m_context)); 396e5c31af7Sopenharmony_ci addChild(new TextureStateQueryTests (m_context)); 397e5c31af7Sopenharmony_ci addChild(new TextureLevelStateQueryTests (m_context)); 398e5c31af7Sopenharmony_ci addChild(new SamplerStateQueryTests (m_context)); 399e5c31af7Sopenharmony_ci addChild(new ShaderStateQueryTests (m_context)); 400e5c31af7Sopenharmony_ci addChild(new InternalFormatQueryTests (m_context)); 401e5c31af7Sopenharmony_ci addChild(new VertexAttributeBindingStateQueryTests (m_context)); 402e5c31af7Sopenharmony_ci addChild(new ShaderMultisampleInterpolationStateQueryTests (m_context)); 403e5c31af7Sopenharmony_ci addChild(new FramebufferDefaultStateQueryTests (m_context)); 404e5c31af7Sopenharmony_ci addChild(new ProgramStateQueryTests (m_context)); 405e5c31af7Sopenharmony_ci addChild(new ProgramPipelineStateQueryTests (m_context)); 406e5c31af7Sopenharmony_ci } 407e5c31af7Sopenharmony_ci}; 408e5c31af7Sopenharmony_ci 409e5c31af7Sopenharmony_ciclass FboTests : public TestCaseGroup 410e5c31af7Sopenharmony_ci{ 411e5c31af7Sopenharmony_cipublic: 412e5c31af7Sopenharmony_ci FboTests (Context& context) 413e5c31af7Sopenharmony_ci : TestCaseGroup(context, "fbo", "Framebuffer Object Tests") 414e5c31af7Sopenharmony_ci { 415e5c31af7Sopenharmony_ci } 416e5c31af7Sopenharmony_ci 417e5c31af7Sopenharmony_ci void init (void) 418e5c31af7Sopenharmony_ci { 419e5c31af7Sopenharmony_ci addChild(new FboColorTests (m_context)); 420e5c31af7Sopenharmony_ci addChild(createFboNoAttachmentTests (m_context)); 421e5c31af7Sopenharmony_ci addChild(createFboNoAttachmentCompletenessTests (m_context)); 422e5c31af7Sopenharmony_ci addChild(new FboSRGBWriteControlTests (m_context)); 423e5c31af7Sopenharmony_ci } 424e5c31af7Sopenharmony_ci}; 425e5c31af7Sopenharmony_ci 426e5c31af7Sopenharmony_ciclass SRGBTextureDecodeTests : public TestCaseGroup 427e5c31af7Sopenharmony_ci{ 428e5c31af7Sopenharmony_cipublic: 429e5c31af7Sopenharmony_ci SRGBTextureDecodeTests (Context& context) 430e5c31af7Sopenharmony_ci : TestCaseGroup (context, "srgb_texture_decode", "GL_EXT_texture_sRGB_decode tests") 431e5c31af7Sopenharmony_ci { 432e5c31af7Sopenharmony_ci } 433e5c31af7Sopenharmony_ci 434e5c31af7Sopenharmony_ci void init (void) 435e5c31af7Sopenharmony_ci { 436e5c31af7Sopenharmony_ci addChild(new SRGBDecodeTests (m_context)); 437e5c31af7Sopenharmony_ci } 438e5c31af7Sopenharmony_ci}; 439e5c31af7Sopenharmony_ci 440e5c31af7Sopenharmony_ciGLES31FunctionalTests::GLES31FunctionalTests (Context& context) 441e5c31af7Sopenharmony_ci : TestCaseGroup(context, "functional", "Functionality Tests") 442e5c31af7Sopenharmony_ci{ 443e5c31af7Sopenharmony_ci} 444e5c31af7Sopenharmony_ci 445e5c31af7Sopenharmony_ciGLES31FunctionalTests::~GLES31FunctionalTests (void) 446e5c31af7Sopenharmony_ci{ 447e5c31af7Sopenharmony_ci} 448e5c31af7Sopenharmony_ci 449e5c31af7Sopenharmony_civoid GLES31FunctionalTests::init (void) 450e5c31af7Sopenharmony_ci{ 451e5c31af7Sopenharmony_ci addChild(new ShaderTests (m_context, false)); 452e5c31af7Sopenharmony_ci addChild(new ComputeTests (m_context)); 453e5c31af7Sopenharmony_ci addChild(new DrawTests (m_context)); 454e5c31af7Sopenharmony_ci addChild(new TessellationTests (m_context, false)); 455e5c31af7Sopenharmony_ci addChild(new SSBOTests (m_context)); 456e5c31af7Sopenharmony_ci addChild(new UniformBlockTests (m_context)); 457e5c31af7Sopenharmony_ci addChild(new ShaderImageLoadStoreTests (m_context)); 458e5c31af7Sopenharmony_ci addChild(new AtomicCounterTests (m_context)); 459e5c31af7Sopenharmony_ci addChild(new StencilTexturingTests (m_context)); 460e5c31af7Sopenharmony_ci addChild(new TextureTests (m_context, false)); 461e5c31af7Sopenharmony_ci addChild(new StateQueryTests (m_context)); 462e5c31af7Sopenharmony_ci addChild(new MultisampleTests (m_context)); 463e5c31af7Sopenharmony_ci addChild(new SynchronizationTests (m_context)); 464e5c31af7Sopenharmony_ci addChild(new GeometryShaderTests (m_context, false)); 465e5c31af7Sopenharmony_ci addChild(new SampleShadingTests (m_context)); 466e5c31af7Sopenharmony_ci addChild(new VertexAttributeBindingTests (m_context)); 467e5c31af7Sopenharmony_ci addChild(new ProgramUniformTests (m_context)); 468e5c31af7Sopenharmony_ci addChild(new AdvancedBlendTests (m_context)); 469e5c31af7Sopenharmony_ci addChild(createGLESSeparateShaderTests (m_context)); 470e5c31af7Sopenharmony_ci addChild(new UniformLocationTests (m_context, false)); 471e5c31af7Sopenharmony_ci addChild(new TessellationGeometryInteractionTests (m_context, false)); 472e5c31af7Sopenharmony_ci addChild(new DebugTests (m_context)); 473e5c31af7Sopenharmony_ci addChild(new FboTests (m_context)); 474e5c31af7Sopenharmony_ci addChild(new ProgramInterfaceQueryTests (m_context, false)); 475e5c31af7Sopenharmony_ci addChild(new LayoutBindingTests (m_context)); 476e5c31af7Sopenharmony_ci addChild(new PrimitiveBoundingBoxTests (m_context)); 477e5c31af7Sopenharmony_ci addChild(new AndroidExtensionPackES31ATests (m_context)); 478e5c31af7Sopenharmony_ci addChild(createCopyImageTests (m_context, false)); 479e5c31af7Sopenharmony_ci addChild(new DefaultVertexArrayObjectTests (m_context)); 480e5c31af7Sopenharmony_ci addChild(new SRGBTextureDecodeTests (m_context)); 481e5c31af7Sopenharmony_ci addChild(new DrawElementsBaseVertexTests (m_context)); 482e5c31af7Sopenharmony_ci} 483e5c31af7Sopenharmony_ci 484e5c31af7Sopenharmony_ciGL45ES31FunctionalTests::GL45ES31FunctionalTests (Context& context) 485e5c31af7Sopenharmony_ci : TestCaseGroup(context, "functional", "Functionality Tests") 486e5c31af7Sopenharmony_ci{ 487e5c31af7Sopenharmony_ci} 488e5c31af7Sopenharmony_ci 489e5c31af7Sopenharmony_ciGL45ES31FunctionalTests::~GL45ES31FunctionalTests (void) 490e5c31af7Sopenharmony_ci{ 491e5c31af7Sopenharmony_ci} 492e5c31af7Sopenharmony_ci 493e5c31af7Sopenharmony_civoid GL45ES31FunctionalTests::init (void) 494e5c31af7Sopenharmony_ci{ 495e5c31af7Sopenharmony_ci addChild(new ShaderTests (m_context, true)); 496e5c31af7Sopenharmony_ci addChild(new ComputeTests (m_context)); 497e5c31af7Sopenharmony_ci addChild(new DrawTests (m_context)); 498e5c31af7Sopenharmony_ci addChild(new TessellationTests (m_context, true)); 499e5c31af7Sopenharmony_ci addChild(new SSBOTests (m_context)); 500e5c31af7Sopenharmony_ci addChild(new UniformBlockTests (m_context)); 501e5c31af7Sopenharmony_ci addChild(new ShaderImageLoadStoreTests (m_context)); 502e5c31af7Sopenharmony_ci addChild(new AtomicCounterTests (m_context)); 503e5c31af7Sopenharmony_ci addChild(new StencilTexturingTests (m_context)); 504e5c31af7Sopenharmony_ci addChild(new TextureTests (m_context, true)); 505e5c31af7Sopenharmony_ci addChild(new StateQueryTests (m_context)); 506e5c31af7Sopenharmony_ci addChild(new MultisampleTests (m_context)); 507e5c31af7Sopenharmony_ci addChild(new SynchronizationTests (m_context)); 508e5c31af7Sopenharmony_ci addChild(new GeometryShaderTests (m_context, true)); 509e5c31af7Sopenharmony_ci addChild(new SampleShadingTests (m_context)); 510e5c31af7Sopenharmony_ci addChild(new VertexAttributeBindingTests (m_context)); 511e5c31af7Sopenharmony_ci addChild(new ProgramUniformTests (m_context)); 512e5c31af7Sopenharmony_ci addChild(new AdvancedBlendTests (m_context)); 513e5c31af7Sopenharmony_ci addChild(createCommonSeparateShaderTests (m_context)); 514e5c31af7Sopenharmony_ci addChild(new UniformLocationTests (m_context, true)); 515e5c31af7Sopenharmony_ci addChild(new TessellationGeometryInteractionTests (m_context, true)); 516e5c31af7Sopenharmony_ci addChild(new DebugTests (m_context)); 517e5c31af7Sopenharmony_ci addChild(new FboTests (m_context)); 518e5c31af7Sopenharmony_ci addChild(new ProgramInterfaceQueryTests (m_context, true)); 519e5c31af7Sopenharmony_ci addChild(new LayoutBindingTests (m_context)); 520e5c31af7Sopenharmony_ci addChild(new PrimitiveBoundingBoxTests (m_context)); 521e5c31af7Sopenharmony_ci addChild(createCopyImageTests (m_context, true)); 522e5c31af7Sopenharmony_ci addChild(new SRGBTextureDecodeTests (m_context)); 523e5c31af7Sopenharmony_ci addChild(new DrawElementsBaseVertexTests (m_context)); 524e5c31af7Sopenharmony_ci} 525e5c31af7Sopenharmony_ci 526e5c31af7Sopenharmony_ci} // Functional 527e5c31af7Sopenharmony_ci} // gles31 528e5c31af7Sopenharmony_ci} // deqp 529