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/42263787
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/42263732
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/42266142
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/42266142
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/42266142
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 // Fails on UHD 770 driver 31.0.101.5333 http://anglebug.com/352085732
430 ANGLE_SKIP_TEST_IF(IsWindows() && IsIntel() && IsDesktopOpenGL());
431
432 ASSERT_NE(CONFORMANCE_TEST_ERROR, SpotExpPosExec());
433 }
434
TEST_P(GLES1ConformanceTest,SpotExpDir)435 TEST_P(GLES1ConformanceTest, SpotExpDir)
436 {
437 // Fails on UHD 770 driver 31.0.101.5333 http://anglebug.com/352085732
438 ANGLE_SKIP_TEST_IF(IsWindows() && IsIntel() && IsDesktopOpenGL());
439
440 ASSERT_NE(CONFORMANCE_TEST_ERROR, SpotExpDirExec());
441 }
442
TEST_P(GLES1ConformanceTest,TexDecal)443 TEST_P(GLES1ConformanceTest, TexDecal)
444 {
445 ASSERT_NE(CONFORMANCE_TEST_ERROR, TexDecalExec());
446 }
447
TEST_P(GLES1ConformanceTest,TexPalet)448 TEST_P(GLES1ConformanceTest, TexPalet)
449 {
450 ANGLE_SKIP_TEST_IF(!IsVulkan());
451 ASSERT_NE(CONFORMANCE_TEST_ERROR, TexPaletExec());
452 }
453
TEST_P(GLES1ConformanceTest,TextureEdgeClamp)454 TEST_P(GLES1ConformanceTest, TextureEdgeClamp)
455 {
456 ASSERT_NE(CONFORMANCE_TEST_ERROR, TextureEdgeClampExec());
457 }
458
TEST_P(GLES1ConformanceTest,TriRaster)459 TEST_P(GLES1ConformanceTest, TriRaster)
460 {
461 ASSERT_NE(CONFORMANCE_TEST_ERROR, TriRasterExec());
462 }
463
TEST_P(GLES1ConformanceTest,TriTile)464 TEST_P(GLES1ConformanceTest, TriTile)
465 {
466 ASSERT_NE(CONFORMANCE_TEST_ERROR, TriTileExec());
467 }
468
TEST_P(GLES1ConformanceTest,VertexOrder)469 TEST_P(GLES1ConformanceTest, VertexOrder)
470 {
471 ASSERT_NE(CONFORMANCE_TEST_ERROR, VertexOrderExec());
472 }
473
TEST_P(GLES1ConformanceTest,ViewportClamp)474 TEST_P(GLES1ConformanceTest, ViewportClamp)
475 {
476 ASSERT_NE(CONFORMANCE_TEST_ERROR, ViewportClampExec());
477 }
478
TEST_P(GLES1ConformanceTest,XForm)479 TEST_P(GLES1ConformanceTest, XForm)
480 {
481 ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormExec());
482 }
483
TEST_P(GLES1ConformanceTest,XFormMix)484 TEST_P(GLES1ConformanceTest, XFormMix)
485 {
486 ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormMixExec());
487 }
488
TEST_P(GLES1ConformanceTest,XFormNormal)489 TEST_P(GLES1ConformanceTest, XFormNormal)
490 {
491 ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormNormalExec());
492 }
493
TEST_P(GLES1ConformanceTest,XFormViewport)494 TEST_P(GLES1ConformanceTest, XFormViewport)
495 {
496 ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormViewportExec());
497 }
498
TEST_P(GLES1ConformanceTest,XFormHomogenous)499 TEST_P(GLES1ConformanceTest, XFormHomogenous)
500 {
501 ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormHomogenousExec());
502 }
503
TEST_P(GLES1ConformanceTest,ZBClear)504 TEST_P(GLES1ConformanceTest, ZBClear)
505 {
506 ASSERT_NE(CONFORMANCE_TEST_ERROR, ZBClearExec());
507 }
508
TEST_P(GLES1ConformanceTest,ZBFunc)509 TEST_P(GLES1ConformanceTest, ZBFunc)
510 {
511 ASSERT_NE(CONFORMANCE_TEST_ERROR, ZBFuncExec());
512 }
513
TEST_P(GLES1ConformanceTest,DrawTex)514 TEST_P(GLES1ConformanceTest, DrawTex)
515 {
516 // Fails on UHD 770 driver 31.0.101.5333 http://anglebug.com/352085732
517 ANGLE_SKIP_TEST_IF(IsWindows() && IsIntel() && IsDesktopOpenGL());
518
519 ASSERT_TRUE(IsGLExtensionEnabled("GL_OES_draw_texture"));
520 ASSERT_NE(CONFORMANCE_TEST_ERROR, DrawTexExec());
521 }
522
TEST_P(GLES1ConformanceTest,MatrixQuery)523 TEST_P(GLES1ConformanceTest, MatrixQuery)
524 {
525 ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixQueryExec());
526 }
527
TEST_P(GLES1ConformanceTest,BufferObject)528 TEST_P(GLES1ConformanceTest, BufferObject)
529 {
530 ASSERT_NE(CONFORMANCE_TEST_ERROR, BufferObjectExec());
531 }
532
TEST_P(GLES1ConformanceTest,PointSizeArray)533 TEST_P(GLES1ConformanceTest, PointSizeArray)
534 {
535 ASSERT_NE(CONFORMANCE_TEST_ERROR, PointSizeArrayExec());
536 }
537
TEST_P(GLES1ConformanceTest,PointSprite)538 TEST_P(GLES1ConformanceTest, PointSprite)
539 {
540 // http://anglebug.com/42265148
541 ANGLE_SKIP_TEST_IF(IsWindows() && IsIntel() && IsVulkan());
542
543 ASSERT_NE(CONFORMANCE_TEST_ERROR, PointSpriteExec());
544 }
545
TEST_P(GLES1ConformanceTest,UserClip)546 TEST_P(GLES1ConformanceTest, UserClip)
547 {
548 // Fails on UHD 770 driver 31.0.101.5333 http://anglebug.com/352085732
549 ANGLE_SKIP_TEST_IF(IsWindows() && IsIntel() && IsDesktopOpenGL());
550
551 // "2.11 Clipping" describes the complementarity criterion, where a
552 // primitive drawn once with a particular clip plane and again with the
553 // negated version of the clip plane must not overdraw for pixels where the
554 // plane equation evaluates exactly to zero; that is, we would need to
555 // detect previously drawn fragments from one clip plane that lie exactly
556 // on the half space boundary, and avoid drawing them if the same primitive
557 // is issued next draw with a negated version of the clip plane.
558 ASSERT_NE(CONFORMANCE_TEST_ERROR, UserClipExec());
559 }
560
TEST_P(GLES1ConformanceTest,MatrixGetTest)561 TEST_P(GLES1ConformanceTest, MatrixGetTest)
562 {
563 ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixGetTestExec());
564 }
565
TEST_P(GLES1ConformanceTest,Gets)566 TEST_P(GLES1ConformanceTest, Gets)
567 {
568 ASSERT_NE(CONFORMANCE_TEST_ERROR, GetsExec());
569 }
570
TEST_P(GLES1ConformanceTest,TexCombine)571 TEST_P(GLES1ConformanceTest, TexCombine)
572 {
573 ASSERT_NE(CONFORMANCE_TEST_ERROR, TexCombineExec());
574 }
575
TEST_P(GLES1ConformanceTest,MatrixPalette)576 TEST_P(GLES1ConformanceTest, MatrixPalette)
577 {
578 ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixPaletteExec());
579 }
580
581 ANGLE_INSTANTIATE_TEST(GLES1ConformanceTest, ES1_OPENGL(), ES1_VULKAN());
582 } // namespace angle
583