13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*-------------------------------------------------------------------------
23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Quality Program OpenGL ES 3.1 Module
33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * -------------------------------------------------
43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Copyright 2014 The Android Open Source Project
63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Licensed under the Apache License, Version 2.0 (the "License");
83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * you may not use this file except in compliance with the License.
93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * You may obtain a copy of the License at
103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *      http://www.apache.org/licenses/LICENSE-2.0
123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Unless required by applicable law or agreed to in writing, software
143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * distributed under the License is distributed on an "AS IS" BASIS,
153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * See the License for the specific language governing permissions and
173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * limitations under the License.
183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*!
203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \file
213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief Functional Tests.
223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/
233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fFunctionalTests.hpp"
253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "glsShaderLibrary.hpp"
273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fBasicComputeShaderTests.hpp"
283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fComputeShaderBuiltinVarTests.hpp"
293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fDrawTests.hpp"
303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderSharedVarTests.hpp"
313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fAtomicCounterTests.hpp"
323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderAtomicOpTests.hpp"
333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderImageLoadStoreTests.hpp"
343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fTessellationTests.hpp"
353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fSSBOLayoutTests.hpp"
363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fSSBOArrayLengthTests.hpp"
373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderCommonFunctionTests.hpp"
383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderPackingFunctionTests.hpp"
393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderIntegerFunctionTests.hpp"
403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fStencilTexturingTests.hpp"
413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderTextureSizeTests.hpp"
423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderStateQueryTests.hpp"
433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fLayoutBindingTests.hpp"
443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fTextureLevelStateQueryTests.hpp"
453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fIntegerStateQueryTests.hpp"
463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fInternalFormatQueryTests.hpp"
47cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry#include "es31fBooleanStateQueryTests.hpp"
48cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry#include "es31fIndexedStateQueryTests.hpp"
49cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry#include "es31fTextureStateQueryTests.hpp"
50cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry#include "es31fFramebufferDefaultStateQueryTests.hpp"
51cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry#include "es31fProgramPipelineStateQueryTests.hpp"
52cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry#include "es31fProgramStateQueryTests.hpp"
53c423ce6164cdd88c8c3e47bec4ec34476743042aJarkko Pöyry#include "es31fSamplerStateQueryTests.hpp"
548852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry#include "es31fTextureFilteringTests.hpp"
553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fTextureFormatTests.hpp"
563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fTextureSpecificationTests.hpp"
573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fTextureMultisampleTests.hpp"
583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fMultisampleTests.hpp"
593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fSynchronizationTests.hpp"
603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fGeometryShaderTests.hpp"
613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fSampleShadingTests.hpp"
623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fSampleVariableTests.hpp"
633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fIndirectComputeDispatchTests.hpp"
643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fVertexAttributeBindingTests.hpp"
653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fVertexAttributeBindingStateQueryTests.hpp"
663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderMultisampleInterpolationTests.hpp"
673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderMultisampleInterpolationStateQueryTests.hpp"
683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fProgramUniformTests.hpp"
693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fOpaqueTypeIndexingTests.hpp"
703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fAdvancedBlendTests.hpp"
713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fSeparateShaderTests.hpp"
723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fUniformLocationTests.hpp"
733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fBuiltinPrecisionTests.hpp"
743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fTessellationGeometryInteractionTests.hpp"
753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fUniformBlockTests.hpp"
763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fDebugTests.hpp"
778852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry#include "es31fFboColorbufferTests.hpp"
783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fFboNoAttachmentTests.hpp"
793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fProgramInterfaceQueryTests.hpp"
803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fTextureGatherTests.hpp"
813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fTextureFormatTests.hpp"
823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fTextureBufferTests.hpp"
8306fe4fe2a28c6c5a7cab7431d313648cf8054943Jarkko Pöyry#include "es31fTextureBorderClampTests.hpp"
843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderBuiltinConstantTests.hpp"
853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es31fShaderHelperInvocationTests.hpp"
861f99d6991ce9a27d32ec0543d95646fe4e7bf001Jarkko Pöyry#include "es31fPrimitiveBoundingBoxTests.hpp"
879e574351a4724975bf91b1e74ccae8786d711386Jarkko Pöyry#include "es31fAndroidExtensionPackES31ATests.hpp"
88433e5704171098c7cd062c7339b259ad76a55678Mika Isojärvi#include "es31fCopyImageTests.hpp"
8968a7147b19e8aa28f66ef6aec399ed0c836f81c0Mika Isojärvi#include "es31fDrawBuffersIndexedTests.hpp"
90f38ef819208f45b43dc0723142a9585dddf5d813Jarkko Pöyry#include "es31fDefaultVertexArrayObjectTests.hpp"
913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
923c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace deqp
933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
943c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace gles31
953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
963c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace Functional
973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
993c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass ShaderLibraryTest : public TestCaseGroup
1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
1023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ShaderLibraryTest (Context& context, const char* name, const char* description)
1033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup	(context, name, description)
1043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		, m_filename	(name + std::string(".test"))
1053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
1073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ShaderLibraryTest (Context& context, const char* filename, const char* name, const char* description)
1093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup	(context, name, description)
1103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		, m_filename	(filename)
1113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
1133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	void init (void)
1153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		gls::ShaderLibrary			shaderLibrary(m_testCtx, m_context.getRenderContext(), m_context.getContextInfo());
1173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		std::string					fileName	= "shaders/" + m_filename;
1183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		std::vector<tcu::TestNode*>	children	= shaderLibrary.loadShaderFile(fileName.c_str());
1193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		for (int i = 0; i < (int)children.size(); i++)
1213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			addChild(children[i]);
1223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
1233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1243c827367444ee418f129b2c238299f49d3264554Jarkko Poyryprivate:
1253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	const std::string m_filename;
1263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
1273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1283c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass ShaderBuiltinVarTests : public TestCaseGroup
1293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ShaderBuiltinVarTests (Context& context)
1323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup(context, "builtin_var", "Shader Built-in Variable Tests")
1333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	void init (void)
1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ComputeShaderBuiltinVarTests(m_context));
1393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
1403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
1413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1423c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass ShaderBuiltinFunctionTests : public TestCaseGroup
1433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
1443c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
1453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ShaderBuiltinFunctionTests (Context& context)
1463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup(context, "builtin_functions", "Built-in Function Tests")
1473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
1493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	void init (void)
1513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderCommonFunctionTests	(m_context));
1533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderPackingFunctionTests	(m_context));
1543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderIntegerFunctionTests	(m_context));
1553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderTextureSizeTests		(m_context));
1563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(createBuiltinPrecisionTests	(m_context));
1573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
1583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
1593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1603c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass ShaderLinkageTests : public TestCaseGroup
1613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
1623c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
1633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ShaderLinkageTests (Context& context)
1643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup(context,  "linkage", "Linkage Tests")
1653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
1673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	void init (void)
1693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderLibraryTest(m_context, "linkage_geometry.test", "geometry", "Geometry shader"));
1713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderLibraryTest(m_context, "linkage_tessellation.test", "tessellation", "Tessellation shader"));
1723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderLibraryTest(m_context, "linkage_tessellation_geometry.test", "tessellation_geometry", "Tessellation and geometry shader"));
1733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderLibraryTest(m_context, "linkage_shader_storage_block.test", "shader_storage_block", "Shader storage blocks"));
1743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderLibraryTest(m_context, "linkage_io_block.test", "io_block", "Shader io blocks"));
1753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
1763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
1773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1783c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass ShaderTests : public TestCaseGroup
1793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
1803c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
1813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ShaderTests (Context& context)
1823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup(context, "shaders", "Shading Language Tests")
1833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
1853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	void init (void)
1873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
1883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderBuiltinVarTests				(m_context));
1893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderBuiltinFunctionTests			(m_context));
1903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new SampleVariableTests				(m_context));
1913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderMultisampleInterpolationTests(m_context));
1923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new OpaqueTypeIndexingTests			(m_context));
1933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderLibraryTest					(m_context, "functions", "Function Tests"));
194cafd5f117a5193d45d75ee3ccdf52caded3d76ceJarkko Pöyry		addChild(new ShaderLibraryTest					(m_context, "arrays", "Arrays Tests"));
1953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderLibraryTest					(m_context, "arrays_of_arrays", "Arrays of Arrays Tests"));
1963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderLinkageTests					(m_context));
1973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderBuiltinConstantTests			(m_context));
1983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderHelperInvocationTests		(m_context));
1993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderLibraryTest					(m_context, "implicit_conversions", "GL_EXT_shader_implicit_conversions Tests"));
200cacbbf83a31d6ae30f08ee58117cc6b037354806Mika Isojärvi		addChild(new ShaderLibraryTest					(m_context, "uniform_block", "Uniform block tests"));
2013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
2033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2043c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass ComputeTests : public TestCaseGroup
2053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
2063c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
2073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ComputeTests (Context& context)
2083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup(context, "compute", "Compute Shader Tests")
2093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
2103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	void init (void)
2133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
2143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new BasicComputeShaderTests		(m_context));
2153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderSharedVarTests			(m_context));
2163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new IndirectComputeDispatchTests	(m_context));
2173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
2193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2203c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass SSBOTests : public TestCaseGroup
2213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
2223c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
2233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	SSBOTests (Context& context)
2243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup(context, "ssbo", "Shader Storage Buffer Object Tests")
2253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
2263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	void init (void)
2293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
2303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new SSBOLayoutTests			(m_context));
2313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderAtomicOpTests		(m_context, "atomic", ATOMIC_OPERAND_BUFFER_VARIABLE));
2323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new SSBOArrayLengthTests		(m_context));
2333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
2353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2363c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass TextureTests : public TestCaseGroup
2373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
2383c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
2393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	TextureTests (Context& context)
2403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup(context, "texture", "Texture tests")
2413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
2423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	void init (void)
2453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
2468852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry		addChild(new TextureFilteringTests		(m_context));
2473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new TextureFormatTests			(m_context));
2483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new TextureSpecificationTests	(m_context));
2493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new TextureMultisampleTests	(m_context));
2503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new TextureGatherTests			(m_context));
2513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(createTextureBufferTests		(m_context));
25206fe4fe2a28c6c5a7cab7431d313648cf8054943Jarkko Pöyry		addChild(new TextureBorderClampTests	(m_context));
2533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
2553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2563c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass StateQueryTests : public TestCaseGroup
2573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
2583c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
2593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	StateQueryTests (Context& context)
2603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup(context, "state_query", "State query tests")
2613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
2623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	void init (void)
2653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
266cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry		addChild(new BooleanStateQueryTests							(m_context));
2673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new IntegerStateQueryTests							(m_context));
268cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry		addChild(new IndexedStateQueryTests							(m_context));
269cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry		addChild(new TextureStateQueryTests							(m_context));
2703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new TextureLevelStateQueryTests					(m_context));
271c423ce6164cdd88c8c3e47bec4ec34476743042aJarkko Pöyry		addChild(new SamplerStateQueryTests							(m_context));
2723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderStateQueryTests							(m_context));
2733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new InternalFormatQueryTests						(m_context));
2743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new VertexAttributeBindingStateQueryTests			(m_context));
2753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(new ShaderMultisampleInterpolationStateQueryTests	(m_context));
276cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry		addChild(new FramebufferDefaultStateQueryTests				(m_context));
277cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry		addChild(new ProgramStateQueryTests							(m_context));
278cb82ed72dcbbfd8a6d07736c3259605227bc984fJarkko Pöyry		addChild(new ProgramPipelineStateQueryTests					(m_context));
2793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
2813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2823c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass FboTests : public TestCaseGroup
2833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
2843c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic:
2853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	FboTests (Context& context)
2863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		: TestCaseGroup(context, "fbo", "Framebuffer Object Tests")
2873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
2883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	void init (void)
2913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{
2928852c82a1ffa4760985c17cc6875d5d521daf343Jarkko Poyry		addChild(new FboColorTests						(m_context));
2933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(createFboNoAttachmentTests				(m_context));
2943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		addChild(createFboNoAttachmentCompletenessTests	(m_context));
2953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	}
2963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry};
2973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2983c827367444ee418f129b2c238299f49d3264554Jarkko PoyryFunctionalTests::FunctionalTests (Context& context)
2993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	: TestCaseGroup(context, "functional", "Functionality Tests")
3003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
3013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
3023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3033c827367444ee418f129b2c238299f49d3264554Jarkko PoyryFunctionalTests::~FunctionalTests (void)
3043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
3053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
3063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3073c827367444ee418f129b2c238299f49d3264554Jarkko Poyryvoid FunctionalTests::init (void)
3083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
3093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new ShaderTests							(m_context));
3103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new ComputeTests							(m_context));
3113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new DrawTests								(m_context));
3123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new TessellationTests						(m_context));
3133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new SSBOTests								(m_context));
3143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new UniformBlockTests						(m_context));
3153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new ShaderImageLoadStoreTests				(m_context));
3163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new AtomicCounterTests						(m_context));
3173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new StencilTexturingTests					(m_context));
3183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new TextureTests							(m_context));
3193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new StateQueryTests						(m_context));
3203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new MultisampleTests						(m_context));
3213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new SynchronizationTests					(m_context));
3223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new GeometryShaderTests					(m_context));
3233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new SampleShadingTests						(m_context));
3243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new VertexAttributeBindingTests			(m_context));
3253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new ProgramUniformTests					(m_context));
3263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new AdvancedBlendTests						(m_context));
3273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(createSeparateShaderTests					(m_context));
3283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new UniformLocationTests					(m_context));
3293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new TessellationGeometryInteractionTests	(m_context));
3303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new DebugTests								(m_context));
3313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new FboTests								(m_context));
3323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new ProgramInterfaceQueryTests				(m_context));
3333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new LayoutBindingTests						(m_context));
3341f99d6991ce9a27d32ec0543d95646fe4e7bf001Jarkko Pöyry	addChild(new PrimitiveBoundingBoxTests				(m_context));
3359e574351a4724975bf91b1e74ccae8786d711386Jarkko Pöyry	addChild(new AndroidExtensionPackES31ATests			(m_context));
336433e5704171098c7cd062c7339b259ad76a55678Mika Isojärvi	addChild(createCopyImageTests						(m_context));
33768a7147b19e8aa28f66ef6aec399ed0c836f81c0Mika Isojärvi	addChild(createDrawBuffersIndexedTests				(m_context));
338f38ef819208f45b43dc0723142a9585dddf5d813Jarkko Pöyry	addChild(new DefaultVertexArrayObjectTests			(m_context));
3393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
3403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // Functional
3423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // gles31
3433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // deqp
344