Bug 1918529 - fix some subpixel misalignment issues with gfx.webrender.svg-filter...
[gecko.git] / dom / canvas / test / webgl-conf / checkout / conformance / glsl / constructors / glsl-construct-vec-mat-index.html
blob084d532f8a64c5ea9a786dd59fb9749f99f993d3
1 <!--
2 Copyright (c) 2019 The Khronos Group Inc.
3 Use of this source code is governed by an MIT-style license that can be
4 found in the LICENSE.txt file.
5 -->
7 <!DOCTYPE html>
8 <html>
9 <head>
10 <meta charset="utf-8">
11 <title>WebGL GLSL Conformance Tests</title>
12 <link rel="stylesheet" href="../../../resources/js-test-style.css"/>
13 <link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/>
14 <script src="../../../js/js-test-pre.js"></script>
15 <script src="../../../js/webgl-test-utils.js"></script>
16 <script src="../../../js/glsl-conformance-test.js"></script>
17 </head>
18 <body>
19 <div id="description"></div>
20 <div id="console"></div>
21 <script id="fragmentShader" type="text/something-not-javascript">
22 // A matrix constructor with two writes and reads to the same variable inside it in different parameters must succeed "mat2(index++, vec4(index++))"
23 // ESSL 1.00 spec section 5.4 Constructors: "Arguments are evaluated from left to right."
24 precision mediump float;
25 bool equal(mat2 m1, mat2 m2)
27 float EPSILON = 0.00001;
28 for (int i = 0; i < 2; i++) {
29 for (int j = 0; j < 2; j++) {
30 if (abs(m1[i][j] - m2[i][j]) > EPSILON)
31 return false;
34 return true;
36 void main()
38 int i = 0;
39 mat2 m = mat2(i++, vec4(i++));
40 if (equal(m, mat2(0, 1, 1, 1)))
41 gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
42 else
43 gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
45 </script>
47 <script>
48 "use strict";
49 GLSLConformanceTester.runRenderTest();
50 var successfullyParsed = true;
51 </script>
52 </body>
53 </html>