1*35238bceSAndroid Build Coastguard Worker /*-------------------------------------------------------------------------
2*35238bceSAndroid Build Coastguard Worker * drawElements Quality Program OpenGL ES 3.0 Module
3*35238bceSAndroid Build Coastguard Worker * -------------------------------------------------
4*35238bceSAndroid Build Coastguard Worker *
5*35238bceSAndroid Build Coastguard Worker * Copyright 2014 The Android Open Source Project
6*35238bceSAndroid Build Coastguard Worker *
7*35238bceSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
8*35238bceSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
9*35238bceSAndroid Build Coastguard Worker * You may obtain a copy of the License at
10*35238bceSAndroid Build Coastguard Worker *
11*35238bceSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0
12*35238bceSAndroid Build Coastguard Worker *
13*35238bceSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
14*35238bceSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
15*35238bceSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16*35238bceSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
17*35238bceSAndroid Build Coastguard Worker * limitations under the License.
18*35238bceSAndroid Build Coastguard Worker *
19*35238bceSAndroid Build Coastguard Worker *//*!
20*35238bceSAndroid Build Coastguard Worker * \file
21*35238bceSAndroid Build Coastguard Worker * \brief Sampler object tests.
22*35238bceSAndroid Build Coastguard Worker *//*--------------------------------------------------------------------*/
23*35238bceSAndroid Build Coastguard Worker #include "es3fSamplerObjectTests.hpp"
24*35238bceSAndroid Build Coastguard Worker
25*35238bceSAndroid Build Coastguard Worker #include "glsSamplerObjectTest.hpp"
26*35238bceSAndroid Build Coastguard Worker
27*35238bceSAndroid Build Coastguard Worker #include "tcuTexture.hpp"
28*35238bceSAndroid Build Coastguard Worker #include "tcuSurface.hpp"
29*35238bceSAndroid Build Coastguard Worker #include "tcuTextureUtil.hpp"
30*35238bceSAndroid Build Coastguard Worker #include "tcuImageCompare.hpp"
31*35238bceSAndroid Build Coastguard Worker #include "tcuTestLog.hpp"
32*35238bceSAndroid Build Coastguard Worker #include "tcuRGBA.hpp"
33*35238bceSAndroid Build Coastguard Worker #include "tcuRenderTarget.hpp"
34*35238bceSAndroid Build Coastguard Worker
35*35238bceSAndroid Build Coastguard Worker #include "gluShaderProgram.hpp"
36*35238bceSAndroid Build Coastguard Worker #include "gluPixelTransfer.hpp"
37*35238bceSAndroid Build Coastguard Worker #include "gluRenderContext.hpp"
38*35238bceSAndroid Build Coastguard Worker
39*35238bceSAndroid Build Coastguard Worker #include "deRandom.hpp"
40*35238bceSAndroid Build Coastguard Worker #include "deString.h"
41*35238bceSAndroid Build Coastguard Worker
42*35238bceSAndroid Build Coastguard Worker #include "glwEnums.hpp"
43*35238bceSAndroid Build Coastguard Worker
44*35238bceSAndroid Build Coastguard Worker namespace deqp
45*35238bceSAndroid Build Coastguard Worker {
46*35238bceSAndroid Build Coastguard Worker namespace gles3
47*35238bceSAndroid Build Coastguard Worker {
48*35238bceSAndroid Build Coastguard Worker namespace Functional
49*35238bceSAndroid Build Coastguard Worker {
50*35238bceSAndroid Build Coastguard Worker
SamplerObjectTests(Context & context)51*35238bceSAndroid Build Coastguard Worker SamplerObjectTests::SamplerObjectTests(Context &context) : TestCaseGroup(context, "samplers", "Texture sampler tests")
52*35238bceSAndroid Build Coastguard Worker {
53*35238bceSAndroid Build Coastguard Worker }
54*35238bceSAndroid Build Coastguard Worker
~SamplerObjectTests(void)55*35238bceSAndroid Build Coastguard Worker SamplerObjectTests::~SamplerObjectTests(void)
56*35238bceSAndroid Build Coastguard Worker {
57*35238bceSAndroid Build Coastguard Worker }
58*35238bceSAndroid Build Coastguard Worker
init(void)59*35238bceSAndroid Build Coastguard Worker void SamplerObjectTests::init(void)
60*35238bceSAndroid Build Coastguard Worker {
61*35238bceSAndroid Build Coastguard Worker gls::TextureSamplerTest::TestSpec simpleTestCases[] = {
62*35238bceSAndroid Build Coastguard Worker {"diff_wrap_t",
63*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_T",
64*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
65*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
66*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
67*35238bceSAndroid Build Coastguard Worker {"diff_wrap_s",
68*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_S",
69*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
70*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
71*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
72*35238bceSAndroid Build Coastguard Worker {"diff_wrap_r",
73*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_R",
74*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
75*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f},
76*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
77*35238bceSAndroid Build Coastguard Worker {"diff_min_filter",
78*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_FILTER",
79*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
80*35238bceSAndroid Build Coastguard Worker {GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
81*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
82*35238bceSAndroid Build Coastguard Worker {"diff_mag_filter",
83*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAG_FILTER",
84*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
85*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
86*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
87*35238bceSAndroid Build Coastguard Worker {"diff_max_lod",
88*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAX_LOD",
89*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
90*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
91*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f}},
92*35238bceSAndroid Build Coastguard Worker {"diff_min_lod",
93*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_LOD",
94*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
95*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f},
96*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f}}};
97*35238bceSAndroid Build Coastguard Worker
98*35238bceSAndroid Build Coastguard Worker TestCaseGroup *simpleTexture2D = new TestCaseGroup(m_context, "single_tex_2d", "Simple 2D texture with sampler");
99*35238bceSAndroid Build Coastguard Worker
100*35238bceSAndroid Build Coastguard Worker for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(simpleTestCases); testNdx++)
101*35238bceSAndroid Build Coastguard Worker simpleTexture2D->addChild(
102*35238bceSAndroid Build Coastguard Worker new gls::TextureSamplerTest(m_testCtx, m_context.getRenderContext(), simpleTestCases[testNdx]));
103*35238bceSAndroid Build Coastguard Worker
104*35238bceSAndroid Build Coastguard Worker addChild(simpleTexture2D);
105*35238bceSAndroid Build Coastguard Worker
106*35238bceSAndroid Build Coastguard Worker gls::MultiTextureSamplerTest::TestSpec multiTestCases[] = {
107*35238bceSAndroid Build Coastguard Worker {"diff_wrap_t",
108*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_T",
109*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
110*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
111*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
112*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
113*35238bceSAndroid Build Coastguard Worker {"diff_wrap_s",
114*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_S",
115*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
116*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
117*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
118*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
119*35238bceSAndroid Build Coastguard Worker {"diff_wrap_r",
120*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_R",
121*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
122*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f},
123*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f},
124*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
125*35238bceSAndroid Build Coastguard Worker {"diff_min_filter",
126*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_FILTER",
127*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
128*35238bceSAndroid Build Coastguard Worker {GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
129*35238bceSAndroid Build Coastguard Worker {GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
130*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
131*35238bceSAndroid Build Coastguard Worker {"diff_mag_filter",
132*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAG_FILTER",
133*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
134*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
135*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
136*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
137*35238bceSAndroid Build Coastguard Worker {"diff_max_lod",
138*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAX_LOD",
139*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
140*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
141*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
142*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f}},
143*35238bceSAndroid Build Coastguard Worker {"diff_min_lod",
144*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_LOD",
145*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_2D,
146*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f},
147*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f},
148*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f}}};
149*35238bceSAndroid Build Coastguard Worker
150*35238bceSAndroid Build Coastguard Worker TestCaseGroup *multiTexture2D =
151*35238bceSAndroid Build Coastguard Worker new TestCaseGroup(m_context, "multi_tex_2d", "Multiple texture units 2D texture with sampler");
152*35238bceSAndroid Build Coastguard Worker
153*35238bceSAndroid Build Coastguard Worker for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(multiTestCases); testNdx++)
154*35238bceSAndroid Build Coastguard Worker multiTexture2D->addChild(
155*35238bceSAndroid Build Coastguard Worker new gls::MultiTextureSamplerTest(m_testCtx, m_context.getRenderContext(), multiTestCases[testNdx]));
156*35238bceSAndroid Build Coastguard Worker
157*35238bceSAndroid Build Coastguard Worker addChild(multiTexture2D);
158*35238bceSAndroid Build Coastguard Worker
159*35238bceSAndroid Build Coastguard Worker gls::TextureSamplerTest::TestSpec simpleTestCases3D[] = {
160*35238bceSAndroid Build Coastguard Worker {"diff_wrap_t",
161*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_T",
162*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
163*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
164*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
165*35238bceSAndroid Build Coastguard Worker {"diff_wrap_s",
166*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_S",
167*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
168*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
169*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
170*35238bceSAndroid Build Coastguard Worker {"diff_wrap_r",
171*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_R",
172*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
173*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f},
174*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
175*35238bceSAndroid Build Coastguard Worker {"diff_min_filter",
176*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_FILTER",
177*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
178*35238bceSAndroid Build Coastguard Worker {GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
179*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
180*35238bceSAndroid Build Coastguard Worker {"diff_mag_filter",
181*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAG_FILTER",
182*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
183*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
184*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
185*35238bceSAndroid Build Coastguard Worker {"diff_max_lod",
186*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAX_LOD",
187*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
188*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
189*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f}},
190*35238bceSAndroid Build Coastguard Worker {"diff_min_lod",
191*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_LOD",
192*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
193*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f},
194*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f}}};
195*35238bceSAndroid Build Coastguard Worker
196*35238bceSAndroid Build Coastguard Worker TestCaseGroup *simpleTexture3D = new TestCaseGroup(m_context, "single_tex_3d", "Simple 3D texture with sampler");
197*35238bceSAndroid Build Coastguard Worker
198*35238bceSAndroid Build Coastguard Worker for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(simpleTestCases3D); testNdx++)
199*35238bceSAndroid Build Coastguard Worker simpleTexture3D->addChild(
200*35238bceSAndroid Build Coastguard Worker new gls::TextureSamplerTest(m_testCtx, m_context.getRenderContext(), simpleTestCases3D[testNdx]));
201*35238bceSAndroid Build Coastguard Worker
202*35238bceSAndroid Build Coastguard Worker addChild(simpleTexture3D);
203*35238bceSAndroid Build Coastguard Worker
204*35238bceSAndroid Build Coastguard Worker gls::MultiTextureSamplerTest::TestSpec multiTestCases3D[] = {
205*35238bceSAndroid Build Coastguard Worker {"diff_wrap_t",
206*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_T",
207*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
208*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
209*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
210*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
211*35238bceSAndroid Build Coastguard Worker {"diff_wrap_s",
212*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_S",
213*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
214*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
215*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
216*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
217*35238bceSAndroid Build Coastguard Worker {"diff_wrap_r",
218*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_R",
219*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
220*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f},
221*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f},
222*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
223*35238bceSAndroid Build Coastguard Worker {"diff_min_filter",
224*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_FILTER",
225*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
226*35238bceSAndroid Build Coastguard Worker {GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
227*35238bceSAndroid Build Coastguard Worker {GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
228*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
229*35238bceSAndroid Build Coastguard Worker {"diff_mag_filter",
230*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAG_FILTER",
231*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
232*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
233*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
234*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
235*35238bceSAndroid Build Coastguard Worker {"diff_max_lod",
236*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAX_LOD",
237*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
238*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
239*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
240*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f}},
241*35238bceSAndroid Build Coastguard Worker {"diff_min_lod",
242*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_LOD",
243*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_3D,
244*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f},
245*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f},
246*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f}}};
247*35238bceSAndroid Build Coastguard Worker
248*35238bceSAndroid Build Coastguard Worker TestCaseGroup *multiTexture3D =
249*35238bceSAndroid Build Coastguard Worker new TestCaseGroup(m_context, "multi_tex_3d", "Multiple texture units 3D texture with sampler");
250*35238bceSAndroid Build Coastguard Worker
251*35238bceSAndroid Build Coastguard Worker for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(multiTestCases3D); testNdx++)
252*35238bceSAndroid Build Coastguard Worker multiTexture3D->addChild(
253*35238bceSAndroid Build Coastguard Worker new gls::MultiTextureSamplerTest(m_testCtx, m_context.getRenderContext(), multiTestCases3D[testNdx]));
254*35238bceSAndroid Build Coastguard Worker
255*35238bceSAndroid Build Coastguard Worker addChild(multiTexture3D);
256*35238bceSAndroid Build Coastguard Worker
257*35238bceSAndroid Build Coastguard Worker gls::TextureSamplerTest::TestSpec simpleTestCasesCube[] = {
258*35238bceSAndroid Build Coastguard Worker {"diff_wrap_t",
259*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_T",
260*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
261*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
262*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
263*35238bceSAndroid Build Coastguard Worker {"diff_wrap_s",
264*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_S",
265*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
266*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
267*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
268*35238bceSAndroid Build Coastguard Worker {"diff_wrap_r",
269*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_R",
270*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
271*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f},
272*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
273*35238bceSAndroid Build Coastguard Worker {"diff_min_filter",
274*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_FILTER",
275*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
276*35238bceSAndroid Build Coastguard Worker {GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
277*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
278*35238bceSAndroid Build Coastguard Worker {"diff_mag_filter",
279*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAG_FILTER",
280*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
281*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
282*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
283*35238bceSAndroid Build Coastguard Worker {"diff_max_lod",
284*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAX_LOD",
285*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
286*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
287*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f}},
288*35238bceSAndroid Build Coastguard Worker {"diff_min_lod",
289*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_LOD",
290*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
291*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f},
292*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f}}};
293*35238bceSAndroid Build Coastguard Worker
294*35238bceSAndroid Build Coastguard Worker TestCaseGroup *simpleTextureCube =
295*35238bceSAndroid Build Coastguard Worker new TestCaseGroup(m_context, "single_cubemap", "Simple cubemap texture with sampler");
296*35238bceSAndroid Build Coastguard Worker
297*35238bceSAndroid Build Coastguard Worker for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(simpleTestCasesCube); testNdx++)
298*35238bceSAndroid Build Coastguard Worker simpleTextureCube->addChild(
299*35238bceSAndroid Build Coastguard Worker new gls::TextureSamplerTest(m_testCtx, m_context.getRenderContext(), simpleTestCasesCube[testNdx]));
300*35238bceSAndroid Build Coastguard Worker
301*35238bceSAndroid Build Coastguard Worker addChild(simpleTextureCube);
302*35238bceSAndroid Build Coastguard Worker
303*35238bceSAndroid Build Coastguard Worker gls::MultiTextureSamplerTest::TestSpec multiTestCasesCube[] = {
304*35238bceSAndroid Build Coastguard Worker {"diff_wrap_t",
305*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_T",
306*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
307*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
308*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_MIRRORED_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
309*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
310*35238bceSAndroid Build Coastguard Worker {"diff_wrap_s",
311*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_S",
312*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
313*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
314*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_MIRRORED_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
315*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
316*35238bceSAndroid Build Coastguard Worker {"diff_wrap_r",
317*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_WRAP_R",
318*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
319*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f},
320*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_MIRRORED_REPEAT, -1000.0f, 1000.0f},
321*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
322*35238bceSAndroid Build Coastguard Worker {"diff_min_filter",
323*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_FILTER",
324*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
325*35238bceSAndroid Build Coastguard Worker {GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
326*35238bceSAndroid Build Coastguard Worker {GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
327*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
328*35238bceSAndroid Build Coastguard Worker {"diff_mag_filter",
329*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAG_FILTER",
330*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
331*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
332*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
333*35238bceSAndroid Build Coastguard Worker {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f}},
334*35238bceSAndroid Build Coastguard Worker {"diff_max_lod",
335*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MAX_LOD",
336*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
337*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
338*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, 1000.0f},
339*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, -1000.0f, -999.0f}},
340*35238bceSAndroid Build Coastguard Worker {"diff_min_lod",
341*35238bceSAndroid Build Coastguard Worker "Different GL_TEXTURE_MIN_LOD",
342*35238bceSAndroid Build Coastguard Worker GL_TEXTURE_CUBE_MAP,
343*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f},
344*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 0.0f, 1000.0f},
345*35238bceSAndroid Build Coastguard Worker {GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, 100.0f, 1000.0f}}};
346*35238bceSAndroid Build Coastguard Worker
347*35238bceSAndroid Build Coastguard Worker TestCaseGroup *multiTextureCube =
348*35238bceSAndroid Build Coastguard Worker new TestCaseGroup(m_context, "multi_cubemap", "Multiple texture units cubemap textures with sampler");
349*35238bceSAndroid Build Coastguard Worker
350*35238bceSAndroid Build Coastguard Worker for (int testNdx = 0; testNdx < DE_LENGTH_OF_ARRAY(multiTestCasesCube); testNdx++)
351*35238bceSAndroid Build Coastguard Worker multiTextureCube->addChild(
352*35238bceSAndroid Build Coastguard Worker new gls::MultiTextureSamplerTest(m_testCtx, m_context.getRenderContext(), multiTestCasesCube[testNdx]));
353*35238bceSAndroid Build Coastguard Worker
354*35238bceSAndroid Build Coastguard Worker addChild(multiTextureCube);
355*35238bceSAndroid Build Coastguard Worker }
356*35238bceSAndroid Build Coastguard Worker
357*35238bceSAndroid Build Coastguard Worker } // namespace Functional
358*35238bceSAndroid Build Coastguard Worker } // namespace gles3
359*35238bceSAndroid Build Coastguard Worker } // namespace deqp
360