1 //
2 // Copyright 2017 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // ConformanceTests.cpp:
7 // GLES1 conformance tests.
8 // Function prototypes taken from tproto.h and turned into gtest tests using a macro.
9 //
10
11 #include "test_utils/ANGLETest.h"
12 #include "test_utils/gl_raii.h"
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 // ES 1.0
19 extern long AmbLightExec(void);
20 extern long AmbMatExec(void);
21 extern long AmbSceneExec(void);
22 extern long APFuncExec(void);
23 extern long AtnConstExec(void);
24 extern long AtnPosExec(void);
25 extern long BClearExec(void);
26 extern long BColorExec(void);
27 extern long BCornerExec(void);
28 extern long BlendExec(void);
29 extern long ClipExec(void);
30 extern long ColRampExec(void);
31 extern long CopyTexExec(void);
32 extern long DifLightExec(void);
33 extern long DifMatExec(void);
34 extern long DifMatNormExec(void);
35 extern long DifMatPosExec(void);
36 extern long DitherExec(void);
37 extern long DivZeroExec(void);
38 extern long EmitMatExec(void);
39 extern long FogExpExec(void);
40 extern long FogLinExec(void);
41 extern long LineAntiAliasExec(void);
42 extern long LineHVExec(void);
43 extern long LineRasterExec(void);
44 extern long LogicOpExec(void);
45 extern long MipExec(void);
46 extern long MipLevelsExec(void);
47 extern long MipLinExec(void);
48 extern long MipSelectExec(void);
49 extern long MaskExec(void);
50 extern long MatrixStackExec(void);
51 extern long MultiTexExec(void);
52 extern long MustPassExec(void);
53 extern long PackedPixelsExec(void);
54 extern long PointAntiAliasExec(void);
55 extern long PointRasterExec(void);
56 extern long PolyCullExec(void);
57 extern long ReadFormatExec(void);
58 extern long RescaleNormalExec(void);
59 extern long ScissorExec(void);
60 extern long SPClearExec(void);
61 extern long SPCornerExec(void);
62 extern long SpecExpExec(void);
63 extern long SpecExpNormExec(void);
64 extern long SpecLightExec(void);
65 extern long SpecMatExec(void);
66 extern long SpecNormExec(void);
67 extern long SPFuncExec(void);
68 extern long SPOpExec(void);
69 extern long SpotPosExec(void);
70 extern long SpotExpPosExec(void);
71 extern long SpotExpDirExec(void);
72 extern long TexDecalExec(void);
73 extern long TexPaletExec(void);
74 extern long TextureEdgeClampExec(void);
75 extern long TriRasterExec(void);
76 extern long TriTileExec(void);
77 extern long VertexOrderExec(void);
78 extern long ViewportClampExec(void);
79 extern long XFormExec(void);
80 extern long XFormMixExec(void);
81 extern long XFormNormalExec(void);
82 extern long XFormViewportExec(void);
83 extern long XFormHomogenousExec(void);
84 extern long ZBClearExec(void);
85 extern long ZBFuncExec(void);
86
87 // GL_OES_draw_texture
88 extern long DrawTexExec(void);
89
90 // GL_OES_query_matrix
91 extern long MatrixQueryExec(void);
92
93 // ES 1.1
94 extern long BufferObjectExec(void);
95 extern long PointSizeArrayExec(void);
96 extern long PointSpriteExec(void);
97 extern long UserClipExec(void);
98 extern long MatrixGetTestExec(void);
99 extern long GetsExec(void);
100 extern long TexCombineExec(void);
101
102 // GL_OES_matrix_palette
103 extern long MatrixPaletteExec(void);
104
105 // Test driver setup
106 void BufferSetup(void);
107 void EpsilonSetup(void);
108 void StateSetup(void);
109
110 #define CONFORMANCE_TEST_ERROR (-1)
111
112 #include "conform.h"
113
114 #ifdef __cplusplus
115 }
116
117 #endif
118 namespace angle
119 {
120 class GLES1ConformanceTest : public ANGLETest<>
121 {
122 protected:
GLES1ConformanceTest()123 GLES1ConformanceTest()
124 {
125 setWindowWidth(WINDSIZEX);
126 setWindowHeight(WINDSIZEY);
127 setConfigRedBits(8);
128 setConfigGreenBits(8);
129 setConfigBlueBits(8);
130 setConfigAlphaBits(8);
131 setConfigDepthBits(24);
132 setConfigStencilBits(8);
133 }
134
testSetUp()135 void testSetUp() override
136 {
137 BufferSetup();
138 EpsilonSetup();
139 StateSetup();
140
141 machine = {};
142 // Default parameters taken from shell.c. Verbosity is increased so test failures come with
143 // information.
144 machine.randSeed = 1;
145 machine.verboseLevel = 2;
146 machine.stateCheckFlag = GL_TRUE;
147 }
148 };
149
TEST_P(GLES1ConformanceTest,AmbLight)150 TEST_P(GLES1ConformanceTest, AmbLight)
151 {
152 // Flaky timeouts due to slow test. http://anglebug.com/5234
153 ANGLE_SKIP_TEST_IF(IsVulkan());
154 ASSERT_NE(CONFORMANCE_TEST_ERROR, AmbLightExec());
155 }
156
TEST_P(GLES1ConformanceTest,AmbMat)157 TEST_P(GLES1ConformanceTest, AmbMat)
158 {
159 ASSERT_NE(CONFORMANCE_TEST_ERROR, AmbMatExec());
160 }
161
TEST_P(GLES1ConformanceTest,AmbScene)162 TEST_P(GLES1ConformanceTest, AmbScene)
163 {
164 ASSERT_NE(CONFORMANCE_TEST_ERROR, AmbSceneExec());
165 }
166
TEST_P(GLES1ConformanceTest,APFunc)167 TEST_P(GLES1ConformanceTest, APFunc)
168 {
169 ASSERT_NE(CONFORMANCE_TEST_ERROR, APFuncExec());
170 }
171
TEST_P(GLES1ConformanceTest,AtnConst)172 TEST_P(GLES1ConformanceTest, AtnConst)
173 {
174 ASSERT_NE(CONFORMANCE_TEST_ERROR, AtnConstExec());
175 }
176
TEST_P(GLES1ConformanceTest,AtnPos)177 TEST_P(GLES1ConformanceTest, AtnPos)
178 {
179 ASSERT_NE(CONFORMANCE_TEST_ERROR, AtnPosExec());
180 }
181
TEST_P(GLES1ConformanceTest,BClear)182 TEST_P(GLES1ConformanceTest, BClear)
183 {
184 ASSERT_NE(CONFORMANCE_TEST_ERROR, BClearExec());
185 }
186
TEST_P(GLES1ConformanceTest,BColor)187 TEST_P(GLES1ConformanceTest, BColor)
188 {
189 ASSERT_NE(CONFORMANCE_TEST_ERROR, BColorExec());
190 }
191
TEST_P(GLES1ConformanceTest,BCorner)192 TEST_P(GLES1ConformanceTest, BCorner)
193 {
194 ASSERT_NE(CONFORMANCE_TEST_ERROR, BCornerExec());
195 }
196
TEST_P(GLES1ConformanceTest,Blend)197 TEST_P(GLES1ConformanceTest, Blend)
198 {
199 // Slow test, takes over 20 seconds in some configs. http://anglebug.com/5171
200 ANGLE_SKIP_TEST_IF(IsVulkan() && IsIntel() && IsWindows());
201 ASSERT_NE(CONFORMANCE_TEST_ERROR, BlendExec());
202 }
203
TEST_P(GLES1ConformanceTest,Clip)204 TEST_P(GLES1ConformanceTest, Clip)
205 {
206 ASSERT_NE(CONFORMANCE_TEST_ERROR, ClipExec());
207 }
208
TEST_P(GLES1ConformanceTest,ColRamp)209 TEST_P(GLES1ConformanceTest, ColRamp)
210 {
211 ASSERT_NE(CONFORMANCE_TEST_ERROR, ColRampExec());
212 }
213
TEST_P(GLES1ConformanceTest,CopyTex)214 TEST_P(GLES1ConformanceTest, CopyTex)
215 {
216 ASSERT_NE(CONFORMANCE_TEST_ERROR, CopyTexExec());
217 }
218
TEST_P(GLES1ConformanceTest,DifLight)219 TEST_P(GLES1ConformanceTest, DifLight)
220 {
221 ASSERT_NE(CONFORMANCE_TEST_ERROR, DifLightExec());
222 }
223
TEST_P(GLES1ConformanceTest,DifMat)224 TEST_P(GLES1ConformanceTest, DifMat)
225 {
226 ASSERT_NE(CONFORMANCE_TEST_ERROR, DifMatExec());
227 }
228
TEST_P(GLES1ConformanceTest,DifMatNorm)229 TEST_P(GLES1ConformanceTest, DifMatNorm)
230 {
231 ASSERT_NE(CONFORMANCE_TEST_ERROR, DifMatNormExec());
232 }
233
TEST_P(GLES1ConformanceTest,DifMatPos)234 TEST_P(GLES1ConformanceTest, DifMatPos)
235 {
236 ASSERT_NE(CONFORMANCE_TEST_ERROR, DifMatPosExec());
237 }
238
TEST_P(GLES1ConformanceTest,Dither)239 TEST_P(GLES1ConformanceTest, Dither)
240 {
241 ASSERT_NE(CONFORMANCE_TEST_ERROR, DitherExec());
242 }
243
TEST_P(GLES1ConformanceTest,DivZero)244 TEST_P(GLES1ConformanceTest, DivZero)
245 {
246 ASSERT_NE(CONFORMANCE_TEST_ERROR, DivZeroExec());
247 }
248
TEST_P(GLES1ConformanceTest,EmitMat)249 TEST_P(GLES1ConformanceTest, EmitMat)
250 {
251 ASSERT_NE(CONFORMANCE_TEST_ERROR, EmitMatExec());
252 }
253
TEST_P(GLES1ConformanceTest,FogExp)254 TEST_P(GLES1ConformanceTest, FogExp)
255 {
256 ASSERT_NE(CONFORMANCE_TEST_ERROR, FogExpExec());
257 }
258
TEST_P(GLES1ConformanceTest,FogLin)259 TEST_P(GLES1ConformanceTest, FogLin)
260 {
261 ASSERT_NE(CONFORMANCE_TEST_ERROR, FogLinExec());
262 }
263
TEST_P(GLES1ConformanceTest,LineAntiAlias)264 TEST_P(GLES1ConformanceTest, LineAntiAlias)
265 {
266 ANGLE_SKIP_TEST_IF(true);
267 ASSERT_NE(CONFORMANCE_TEST_ERROR, LineAntiAliasExec());
268 }
269
TEST_P(GLES1ConformanceTest,LineHV)270 TEST_P(GLES1ConformanceTest, LineHV)
271 {
272 ASSERT_NE(CONFORMANCE_TEST_ERROR, LineHVExec());
273 }
274
TEST_P(GLES1ConformanceTest,LineRaster)275 TEST_P(GLES1ConformanceTest, LineRaster)
276 {
277 ASSERT_NE(CONFORMANCE_TEST_ERROR, LineRasterExec());
278 }
279
TEST_P(GLES1ConformanceTest,LogicOp)280 TEST_P(GLES1ConformanceTest, LogicOp)
281 {
282 // Only supported if logicOp or framebuffer fetch is supported by the backend.
283 //
284 // - Desktop GL: has logicOp support
285 // - GLES: has framebuffer fetch support
286 // - Vulkan: has logicOp support on desktop, and framebuffer fetch support otherwise.
287 // * Non-coherent framebuffer fetch is disabled on Qualcomm due to app bugs, and coherent is
288 // not supported.
289 ANGLE_SKIP_TEST_IF(!IsOpenGL() && !IsVulkan());
290 ANGLE_SKIP_TEST_IF(IsVulkan() && IsQualcomm());
291
292 ASSERT_NE(CONFORMANCE_TEST_ERROR, LogicOpExec());
293 }
294
TEST_P(GLES1ConformanceTest,Mip)295 TEST_P(GLES1ConformanceTest, Mip)
296 {
297 ASSERT_NE(CONFORMANCE_TEST_ERROR, MipExec());
298 }
299
TEST_P(GLES1ConformanceTest,MipLevels)300 TEST_P(GLES1ConformanceTest, MipLevels)
301 {
302 ASSERT_NE(CONFORMANCE_TEST_ERROR, MipLevelsExec());
303 }
304
TEST_P(GLES1ConformanceTest,MipLin)305 TEST_P(GLES1ConformanceTest, MipLin)
306 {
307 ASSERT_NE(CONFORMANCE_TEST_ERROR, MipLinExec());
308 }
309
TEST_P(GLES1ConformanceTest,MipSelect)310 TEST_P(GLES1ConformanceTest, MipSelect)
311 {
312 ASSERT_NE(CONFORMANCE_TEST_ERROR, MipSelectExec());
313 }
314
TEST_P(GLES1ConformanceTest,Mask)315 TEST_P(GLES1ConformanceTest, Mask)
316 {
317 ASSERT_NE(CONFORMANCE_TEST_ERROR, MaskExec());
318 }
319
TEST_P(GLES1ConformanceTest,MatrixStack)320 TEST_P(GLES1ConformanceTest, MatrixStack)
321 {
322 ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixStackExec());
323 }
324
TEST_P(GLES1ConformanceTest,MultiTex)325 TEST_P(GLES1ConformanceTest, MultiTex)
326 {
327 ASSERT_NE(CONFORMANCE_TEST_ERROR, MultiTexExec());
328 }
329
TEST_P(GLES1ConformanceTest,MustPass)330 TEST_P(GLES1ConformanceTest, MustPass)
331 {
332 ANGLE_SKIP_TEST_IF(true);
333 ASSERT_NE(CONFORMANCE_TEST_ERROR, MustPassExec());
334 }
335
TEST_P(GLES1ConformanceTest,PackedPixels)336 TEST_P(GLES1ConformanceTest, PackedPixels)
337 {
338 ASSERT_NE(CONFORMANCE_TEST_ERROR, PackedPixelsExec());
339 }
340
TEST_P(GLES1ConformanceTest,PointAntiAlias)341 TEST_P(GLES1ConformanceTest, PointAntiAlias)
342 {
343 ASSERT_NE(CONFORMANCE_TEST_ERROR, PointAntiAliasExec());
344 }
345
TEST_P(GLES1ConformanceTest,PointRaster)346 TEST_P(GLES1ConformanceTest, PointRaster)
347 {
348 ASSERT_NE(CONFORMANCE_TEST_ERROR, PointRasterExec());
349 }
350
TEST_P(GLES1ConformanceTest,PolyCull)351 TEST_P(GLES1ConformanceTest, PolyCull)
352 {
353 ASSERT_NE(CONFORMANCE_TEST_ERROR, PolyCullExec());
354 }
355
TEST_P(GLES1ConformanceTest,ReadFormat)356 TEST_P(GLES1ConformanceTest, ReadFormat)
357 {
358 ASSERT_NE(CONFORMANCE_TEST_ERROR, ReadFormatExec());
359 }
360
TEST_P(GLES1ConformanceTest,RescaleNormal)361 TEST_P(GLES1ConformanceTest, RescaleNormal)
362 {
363 ASSERT_NE(CONFORMANCE_TEST_ERROR, RescaleNormalExec());
364 }
365
TEST_P(GLES1ConformanceTest,Scissor)366 TEST_P(GLES1ConformanceTest, Scissor)
367 {
368 ASSERT_NE(CONFORMANCE_TEST_ERROR, ScissorExec());
369 }
370
TEST_P(GLES1ConformanceTest,SPClear)371 TEST_P(GLES1ConformanceTest, SPClear)
372 {
373 // http://anglebug.com/7676
374 ANGLE_SKIP_TEST_IF(IsQualcomm() && IsVulkan());
375 ASSERT_NE(CONFORMANCE_TEST_ERROR, SPClearExec());
376 }
377
TEST_P(GLES1ConformanceTest,SPCorner)378 TEST_P(GLES1ConformanceTest, SPCorner)
379 {
380 // http://anglebug.com/7676
381 ANGLE_SKIP_TEST_IF(IsQualcomm());
382 ASSERT_NE(CONFORMANCE_TEST_ERROR, SPCornerExec());
383 }
384
TEST_P(GLES1ConformanceTest,SpecExp)385 TEST_P(GLES1ConformanceTest, SpecExp)
386 {
387 ASSERT_NE(CONFORMANCE_TEST_ERROR, SpecExpExec());
388 }
389
TEST_P(GLES1ConformanceTest,SpecExpNorm)390 TEST_P(GLES1ConformanceTest, SpecExpNorm)
391 {
392 ASSERT_NE(CONFORMANCE_TEST_ERROR, SpecExpNormExec());
393 }
394
TEST_P(GLES1ConformanceTest,SpecLight)395 TEST_P(GLES1ConformanceTest, SpecLight)
396 {
397 ASSERT_NE(CONFORMANCE_TEST_ERROR, SpecLightExec());
398 }
399
TEST_P(GLES1ConformanceTest,SpecMat)400 TEST_P(GLES1ConformanceTest, SpecMat)
401 {
402 ASSERT_NE(CONFORMANCE_TEST_ERROR, SpecMatExec());
403 }
404
TEST_P(GLES1ConformanceTest,SpecNorm)405 TEST_P(GLES1ConformanceTest, SpecNorm)
406 {
407 ASSERT_NE(CONFORMANCE_TEST_ERROR, SpecNormExec());
408 }
409
TEST_P(GLES1ConformanceTest,SPFunc)410 TEST_P(GLES1ConformanceTest, SPFunc)
411 {
412 ASSERT_NE(CONFORMANCE_TEST_ERROR, SPFuncExec());
413 }
414
TEST_P(GLES1ConformanceTest,SPOp)415 TEST_P(GLES1ConformanceTest, SPOp)
416 {
417 // http://anglebug.com/7676
418 ANGLE_SKIP_TEST_IF(IsQualcomm());
419 ASSERT_NE(CONFORMANCE_TEST_ERROR, SPOpExec());
420 }
421
TEST_P(GLES1ConformanceTest,SpotPos)422 TEST_P(GLES1ConformanceTest, SpotPos)
423 {
424 ASSERT_NE(CONFORMANCE_TEST_ERROR, SpotPosExec());
425 }
426
TEST_P(GLES1ConformanceTest,SpotExpPos)427 TEST_P(GLES1ConformanceTest, SpotExpPos)
428 {
429 ASSERT_NE(CONFORMANCE_TEST_ERROR, SpotExpPosExec());
430 }
431
TEST_P(GLES1ConformanceTest,SpotExpDir)432 TEST_P(GLES1ConformanceTest, SpotExpDir)
433 {
434 ASSERT_NE(CONFORMANCE_TEST_ERROR, SpotExpDirExec());
435 }
436
TEST_P(GLES1ConformanceTest,TexDecal)437 TEST_P(GLES1ConformanceTest, TexDecal)
438 {
439 ASSERT_NE(CONFORMANCE_TEST_ERROR, TexDecalExec());
440 }
441
TEST_P(GLES1ConformanceTest,TexPalet)442 TEST_P(GLES1ConformanceTest, TexPalet)
443 {
444 ANGLE_SKIP_TEST_IF(!IsVulkan());
445 ASSERT_NE(CONFORMANCE_TEST_ERROR, TexPaletExec());
446 }
447
TEST_P(GLES1ConformanceTest,TextureEdgeClamp)448 TEST_P(GLES1ConformanceTest, TextureEdgeClamp)
449 {
450 ASSERT_NE(CONFORMANCE_TEST_ERROR, TextureEdgeClampExec());
451 }
452
TEST_P(GLES1ConformanceTest,TriRaster)453 TEST_P(GLES1ConformanceTest, TriRaster)
454 {
455 ASSERT_NE(CONFORMANCE_TEST_ERROR, TriRasterExec());
456 }
457
TEST_P(GLES1ConformanceTest,TriTile)458 TEST_P(GLES1ConformanceTest, TriTile)
459 {
460 ASSERT_NE(CONFORMANCE_TEST_ERROR, TriTileExec());
461 }
462
TEST_P(GLES1ConformanceTest,VertexOrder)463 TEST_P(GLES1ConformanceTest, VertexOrder)
464 {
465 ASSERT_NE(CONFORMANCE_TEST_ERROR, VertexOrderExec());
466 }
467
TEST_P(GLES1ConformanceTest,ViewportClamp)468 TEST_P(GLES1ConformanceTest, ViewportClamp)
469 {
470 ASSERT_NE(CONFORMANCE_TEST_ERROR, ViewportClampExec());
471 }
472
TEST_P(GLES1ConformanceTest,XForm)473 TEST_P(GLES1ConformanceTest, XForm)
474 {
475 ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormExec());
476 }
477
TEST_P(GLES1ConformanceTest,XFormMix)478 TEST_P(GLES1ConformanceTest, XFormMix)
479 {
480 ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormMixExec());
481 }
482
TEST_P(GLES1ConformanceTest,XFormNormal)483 TEST_P(GLES1ConformanceTest, XFormNormal)
484 {
485 ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormNormalExec());
486 }
487
TEST_P(GLES1ConformanceTest,XFormViewport)488 TEST_P(GLES1ConformanceTest, XFormViewport)
489 {
490 ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormViewportExec());
491 }
492
TEST_P(GLES1ConformanceTest,XFormHomogenous)493 TEST_P(GLES1ConformanceTest, XFormHomogenous)
494 {
495 ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormHomogenousExec());
496 }
497
TEST_P(GLES1ConformanceTest,ZBClear)498 TEST_P(GLES1ConformanceTest, ZBClear)
499 {
500 ASSERT_NE(CONFORMANCE_TEST_ERROR, ZBClearExec());
501 }
502
TEST_P(GLES1ConformanceTest,ZBFunc)503 TEST_P(GLES1ConformanceTest, ZBFunc)
504 {
505 ASSERT_NE(CONFORMANCE_TEST_ERROR, ZBFuncExec());
506 }
507
TEST_P(GLES1ConformanceTest,DrawTex)508 TEST_P(GLES1ConformanceTest, DrawTex)
509 {
510 ASSERT_TRUE(IsGLExtensionEnabled("GL_OES_draw_texture"));
511 ASSERT_NE(CONFORMANCE_TEST_ERROR, DrawTexExec());
512 }
513
TEST_P(GLES1ConformanceTest,MatrixQuery)514 TEST_P(GLES1ConformanceTest, MatrixQuery)
515 {
516 ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixQueryExec());
517 }
518
TEST_P(GLES1ConformanceTest,BufferObject)519 TEST_P(GLES1ConformanceTest, BufferObject)
520 {
521 ASSERT_NE(CONFORMANCE_TEST_ERROR, BufferObjectExec());
522 }
523
TEST_P(GLES1ConformanceTest,PointSizeArray)524 TEST_P(GLES1ConformanceTest, PointSizeArray)
525 {
526 ASSERT_NE(CONFORMANCE_TEST_ERROR, PointSizeArrayExec());
527 }
528
TEST_P(GLES1ConformanceTest,PointSprite)529 TEST_P(GLES1ConformanceTest, PointSprite)
530 {
531 // http://anglebug.com/6652
532 ANGLE_SKIP_TEST_IF(IsWindows() && IsIntel() && IsVulkan());
533
534 ASSERT_NE(CONFORMANCE_TEST_ERROR, PointSpriteExec());
535 }
536
TEST_P(GLES1ConformanceTest,UserClip)537 TEST_P(GLES1ConformanceTest, UserClip)
538 {
539 // "2.11 Clipping" describes the complementarity criterion, where a
540 // primitive drawn once with a particular clip plane and again with the
541 // negated version of the clip plane must not overdraw for pixels where the
542 // plane equation evaluates exactly to zero; that is, we would need to
543 // detect previously drawn fragments from one clip plane that lie exactly
544 // on the half space boundary, and avoid drawing them if the same primitive
545 // is issued next draw with a negated version of the clip plane.
546 ASSERT_NE(CONFORMANCE_TEST_ERROR, UserClipExec());
547 }
548
TEST_P(GLES1ConformanceTest,MatrixGetTest)549 TEST_P(GLES1ConformanceTest, MatrixGetTest)
550 {
551 ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixGetTestExec());
552 }
553
TEST_P(GLES1ConformanceTest,Gets)554 TEST_P(GLES1ConformanceTest, Gets)
555 {
556 ASSERT_NE(CONFORMANCE_TEST_ERROR, GetsExec());
557 }
558
TEST_P(GLES1ConformanceTest,TexCombine)559 TEST_P(GLES1ConformanceTest, TexCombine)
560 {
561 ASSERT_NE(CONFORMANCE_TEST_ERROR, TexCombineExec());
562 }
563
TEST_P(GLES1ConformanceTest,MatrixPalette)564 TEST_P(GLES1ConformanceTest, MatrixPalette)
565 {
566 ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixPaletteExec());
567 }
568
569 ANGLE_INSTANTIATE_TEST(GLES1ConformanceTest, ES1_OPENGL(), ES1_VULKAN());
570 } // namespace angle
571