Backed out changeset 7272b7396c78 (bug 1932758) for causing fenix debug failures...
[gecko.git] / dom / canvas / test / webgl-conf / checkout / conformance2 / glsl3 / input-with-interpotaion-as-lvalue.html
blobfa6d87cd129fecf6bc50261178c3f729787cd23f
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>Negative tests for writting to a shader input with interpolation qualifier</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 <!--
22 According to ESSL 3.00.6 section 4.3.4:
23 "Variables declared as in or centroid in may not be written to during shader execution.",
24 these tests ensure that a compile error is generated when using a shader input with interpolation qualifier as l-value.
25 -->
26 <script type="application/javascript">
27 "use strict";
28 description();
30 var vertexShaderTemplate = [
31 '#version 300 es',
32 '$(InterpolationQualifier) out float v_float_varying;',
33 'void main()',
34 '{',
35 ' v_float_varying = 1.0;',
36 ' gl_Position = vec4(0.0, 0.0, 0.0, 1.0);',
37 '}'
38 ].join('\n');
40 var fragmentShaderTemplate = [
41 '#version 300 es',
42 'precision mediump float;',
43 '$(InterpolationQualifier) in float v_float_varying;',
44 'out vec4 my_color;',
45 'void main()',
46 '{',
47 ' v_float_varying = 1.0;',
48 ' my_color = vec4(1.0, 0.0, 0.0, v_float_varying);',
49 '}'
50 ].join('\n');
52 var errorMessageTemplate = "Writting to shader inputs with '$(InterpolationQualifier)' qualifier must fail";
54 var testDataList = [
56 InterpolationQualifier: 'flat'
59 InterpolationQualifier: 'smooth'
62 InterpolationQualifier: 'centroid'
66 var wtu = WebGLTestUtils;
68 var tests = [];
69 for (var i = 0; i < testDataList.length; ++i) {
70 tests.push({
71 vShaderSource: wtu.replaceParams(vertexShaderTemplate, testDataList[i]),
72 vShaderSuccess: true,
73 fShaderSource: wtu.replaceParams(fragmentShaderTemplate, testDataList[i]),
74 fShaderSuccess: false,
75 linkSuccess: false,
76 passMsg: wtu.replaceParams(errorMessageTemplate, testDataList[i])
77 });
80 GLSLConformanceTester.runTests(tests, 2);
81 </script>
82 </body>
83 </html>