13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*-------------------------------------------------------------------------
23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Quality Program OpenGL ES 3.0 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 Sampler object tests.
223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/
233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es3fSamplerObjectTests.hpp"
243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "glsSamplerObjectTest.hpp"
263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuTexture.hpp"
283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuSurface.hpp"
293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuTextureUtil.hpp"
303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuImageCompare.hpp"
313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuTestLog.hpp"
323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuRGBA.hpp"
333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuRenderTarget.hpp"
343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "gluShaderProgram.hpp"
363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "gluPixelTransfer.hpp"
373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "gluRenderContext.hpp"
383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "deRandom.hpp"
403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "deString.h"
413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "glwEnums.hpp"
433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
443c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace deqp
453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
463c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace gles3
473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
483c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace Functional
493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
513c827367444ee418f129b2c238299f49d3264554Jarkko PoyrySamplerObjectTests::SamplerObjectTests (Context& context)
523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	: TestCaseGroup(context, "samplers", "Texture sampler tests")
533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
563c827367444ee418f129b2c238299f49d3264554Jarkko PoyrySamplerObjectTests::~SamplerObjectTests (void)
573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
603c827367444ee418f129b2c238299f49d3264554Jarkko Poyryvoid SamplerObjectTests::init (void)
613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	gls::TextureSamplerTest::TestSpec simpleTestCases[] = {
633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_t", "Different GL_TEXTURE_WRAP_T", GL_TEXTURE_2D,
643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_s", "Different GL_TEXTURE_WRAP_S", GL_TEXTURE_2D,
683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_r", "Different GL_TEXTURE_WRAP_R", GL_TEXTURE_2D,
723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f },
733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_filter", "Different GL_TEXTURE_MIN_FILTER", GL_TEXTURE_2D,
763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_mag_filter", "Different GL_TEXTURE_MAG_FILTER", GL_TEXTURE_2D,
803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_max_lod", "Different GL_TEXTURE_MAX_LOD", GL_TEXTURE_2D,
843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f }
863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_lod", "Different GL_TEXTURE_MIN_LOD", GL_TEXTURE_2D,
883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f },
893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f }
903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};
923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	TestCaseGroup* simpleTexture2D = new TestCaseGroup(m_context, "single_tex_2d", "Simple 2D texture with sampler");
943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(simpleTestCases); testNdx++)
963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		simpleTexture2D->addChild(new gls::TextureSamplerTest(m_testCtx, m_context.getRenderContext(), simpleTestCases[testNdx]));
973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(simpleTexture2D);
993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	gls::MultiTextureSamplerTest::TestSpec multiTestCases[] = {
1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_t", "Different GL_TEXTURE_WRAP_T", GL_TEXTURE_2D,
1023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_s", "Different GL_TEXTURE_WRAP_S", GL_TEXTURE_2D,
1073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_r", "Different GL_TEXTURE_WRAP_R", GL_TEXTURE_2D,
1123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f },
1133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f },
1143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_filter", "Different GL_TEXTURE_MIN_FILTER", GL_TEXTURE_2D,
1173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_mag_filter", "Different GL_TEXTURE_MAG_FILTER", GL_TEXTURE_2D,
1223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_max_lod", "Different GL_TEXTURE_MAX_LOD", GL_TEXTURE_2D,
1273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f }
1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_lod", "Different GL_TEXTURE_MIN_LOD", GL_TEXTURE_2D,
1323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f },
1333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f },
1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f }
1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};
1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	TestCaseGroup* multiTexture2D = new TestCaseGroup(m_context, "multi_tex_2d", "Multiple texture units 2D texture with sampler");
1393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(multiTestCases); testNdx++)
1413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		multiTexture2D->addChild(new gls::MultiTextureSamplerTest(m_testCtx, m_context.getRenderContext(), multiTestCases[testNdx]));
1423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(multiTexture2D);
1443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	gls::TextureSamplerTest::TestSpec simpleTestCases3D[] = {
1463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_t", "Different GL_TEXTURE_WRAP_T", GL_TEXTURE_3D,
1473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_s", "Different GL_TEXTURE_WRAP_S", GL_TEXTURE_3D,
1513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_r", "Different GL_TEXTURE_WRAP_R", GL_TEXTURE_3D,
1553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f },
1563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_filter", "Different GL_TEXTURE_MIN_FILTER", GL_TEXTURE_3D,
1593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_mag_filter", "Different GL_TEXTURE_MAG_FILTER", GL_TEXTURE_3D,
1633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_max_lod", "Different GL_TEXTURE_MAX_LOD", GL_TEXTURE_3D,
1673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f }
1693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_lod", "Different GL_TEXTURE_MIN_LOD", GL_TEXTURE_3D,
1713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f },
1723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f }
1733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
1743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};
1753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	TestCaseGroup* simpleTexture3D = new TestCaseGroup(m_context, "single_tex_3d", "Simple 3D texture with sampler");
1773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(simpleTestCases3D); testNdx++)
1793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		simpleTexture3D->addChild(new gls::TextureSamplerTest(m_testCtx, m_context.getRenderContext(), simpleTestCases3D[testNdx]));
1803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(simpleTexture3D);
1823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	gls::MultiTextureSamplerTest::TestSpec multiTestCases3D[] = {
1843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_t", "Different GL_TEXTURE_WRAP_T", GL_TEXTURE_3D,
1853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_s", "Different GL_TEXTURE_WRAP_S", GL_TEXTURE_3D,
1903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
1923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_r", "Different GL_TEXTURE_WRAP_R", GL_TEXTURE_3D,
1953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f },
1963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f },
1973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
1983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
1993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_filter", "Different GL_TEXTURE_MIN_FILTER", GL_TEXTURE_3D,
2003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_mag_filter", "Different GL_TEXTURE_MAG_FILTER", GL_TEXTURE_3D,
2053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_max_lod", "Different GL_TEXTURE_MAX_LOD", GL_TEXTURE_3D,
2103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f }
2133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_lod", "Different GL_TEXTURE_MIN_LOD", GL_TEXTURE_3D,
2153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f },
2163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f },
2173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f }
2183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
2193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};
2203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	TestCaseGroup* multiTexture3D = new TestCaseGroup(m_context, "multi_tex_3d", "Multiple texture units 3D texture with sampler");
2223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(multiTestCases3D); testNdx++)
2243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		multiTexture3D->addChild(new gls::MultiTextureSamplerTest(m_testCtx, m_context.getRenderContext(), multiTestCases3D[testNdx]));
2253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(multiTexture3D);
2273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	gls::TextureSamplerTest::TestSpec simpleTestCasesCube[] = {
2293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_t", "Different GL_TEXTURE_WRAP_T", GL_TEXTURE_CUBE_MAP,
2303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_s", "Different GL_TEXTURE_WRAP_S", GL_TEXTURE_CUBE_MAP,
2343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_r", "Different GL_TEXTURE_WRAP_R", GL_TEXTURE_CUBE_MAP,
2383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f },
2393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_filter", "Different GL_TEXTURE_MIN_FILTER", GL_TEXTURE_CUBE_MAP,
2423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_mag_filter", "Different GL_TEXTURE_MAG_FILTER", GL_TEXTURE_CUBE_MAP,
2463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_max_lod", "Different GL_TEXTURE_MAX_LOD", GL_TEXTURE_CUBE_MAP,
2503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f }
2523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_lod", "Different GL_TEXTURE_MIN_LOD", GL_TEXTURE_CUBE_MAP,
2543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f },
2553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f }
2563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
2573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};
2583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	TestCaseGroup* simpleTextureCube = new TestCaseGroup(m_context, "single_cubemap", "Simple cubemap texture with sampler");
2603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(simpleTestCasesCube); testNdx++)
2623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		simpleTextureCube->addChild(new gls::TextureSamplerTest(m_testCtx, m_context.getRenderContext(), simpleTestCasesCube[testNdx]));
2633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(simpleTextureCube);
2653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	gls::MultiTextureSamplerTest::TestSpec multiTestCasesCube[] = {
2673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_t", "Different GL_TEXTURE_WRAP_T", GL_TEXTURE_CUBE_MAP,
2683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_s", "Different GL_TEXTURE_WRAP_S", GL_TEXTURE_CUBE_MAP,
2733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_wrap_r", "Different GL_TEXTURE_WRAP_R", GL_TEXTURE_CUBE_MAP,
2783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f },
2793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f },
2803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_filter", "Different GL_TEXTURE_MIN_FILTER", GL_TEXTURE_CUBE_MAP,
2833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_mag_filter", "Different GL_TEXTURE_MAG_FILTER", GL_TEXTURE_CUBE_MAP,
2883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f }
2913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_max_lod", "Different GL_TEXTURE_MAX_LOD", GL_TEXTURE_CUBE_MAP,
2933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f },
2953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f }
2963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		},
2973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{ "diff_min_lod", "Different GL_TEXTURE_MIN_LOD", GL_TEXTURE_CUBE_MAP,
2983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f },
2993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f },
3003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f }
3013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
3023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};
3033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	TestCaseGroup* multiTextureCube = new TestCaseGroup(m_context, "multi_cubemap", "Multiple texture units cubemap textures with sampler");
3053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(multiTestCasesCube); testNdx++)
3073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		multiTextureCube->addChild(new gls::MultiTextureSamplerTest(m_testCtx, m_context.getRenderContext(), multiTestCasesCube[testNdx]));
3083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(multiTextureCube);
3103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
3113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // Functional
3133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // gles3
3143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // deqp
315