Backed out changeset 7272b7396c78 (bug 1932758) for causing fenix debug failures...
[gecko.git] / dom / canvas / test / webgl-conf / checkout / conformance2 / state / gl-get-calls.html
blob6f0991a9d24d7fe493fcf5aea9faa28c96e3dae0
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 gl calls Conformance Tests</title>
12 <link rel="stylesheet" href="../../resources/js-test-style.css"/>
13 <script src="../../js/js-test-pre.js"></script>
14 <script src="../../js/webgl-test-utils.js"></script>
15 </head>
16 <body>
17 <div id="description"></div>
18 <div id="console"></div>
19 <canvas id="canvas" width="2" height="2"> </canvas>
20 <script>
21 "use strict";
22 description("This test ensures getParameter is working correct with WebGL 2 pnames");
24 debug("");
25 debug("Canvas.getContext");
27 var minimumRequiredStencilMask = 0;
28 var wtu = WebGLTestUtils;
29 var context = wtu.create3DContext("canvas", null, 2);
30 if (!context)
31 testFailed("context does not exist");
32 else {
33 testPassed("context exists");
35 debug("");
36 debug("Context contains getError");
37 if ("getError" in context)
38 testPassed("context contains getError");
39 else
40 testFailed("context does not contains getError");
42 debug("");
43 debug("Check default values");
45 shouldBe('context.getParameter(context.COPY_READ_BUFFER_BINDING)', 'null');
46 shouldBe('context.getParameter(context.COPY_WRITE_BUFFER_BINDING)', 'null');
47 shouldBe('context.getParameter(context.DRAW_BUFFER0)', 'context.BACK');
48 shouldBe('context.getParameter(context.DRAW_FRAMEBUFFER_BINDING)', 'null');
49 shouldBe('context.getParameter(context.FRAGMENT_SHADER_DERIVATIVE_HINT)', 'context.DONT_CARE');
50 shouldBe('context.getParameter(context.PACK_ROW_LENGTH)', '0');
51 shouldBe('context.getParameter(context.PACK_SKIP_PIXELS)', '0');
52 shouldBe('context.getParameter(context.PACK_SKIP_ROWS)', '0');
53 shouldBe('context.getParameter(context.PIXEL_PACK_BUFFER_BINDING)', 'null');
55 shouldBe('context.getParameter(context.PIXEL_UNPACK_BUFFER_BINDING)', 'null');
56 shouldBe('context.getParameter(context.RASTERIZER_DISCARD)', 'false');
57 shouldBe('context.getParameter(context.READ_BUFFER)', 'context.BACK');
58 shouldBe('context.getParameter(context.READ_FRAMEBUFFER_BINDING)', 'null');
59 shouldBe('context.getParameter(context.SAMPLE_ALPHA_TO_COVERAGE)', 'false');
60 shouldBe('context.getParameter(context.SAMPLE_COVERAGE)', 'false');
61 shouldBe('context.getParameter(context.SAMPLER_BINDING)', 'null');
62 shouldBe('context.getParameter(context.TEXTURE_BINDING_2D_ARRAY)', 'null');
63 shouldBe('context.getParameter(context.TEXTURE_BINDING_3D)', 'null');
64 shouldBe('context.getParameter(context.TRANSFORM_FEEDBACK_ACTIVE)', 'false');
65 shouldBe('context.getParameter(context.TRANSFORM_FEEDBACK_BINDING)', 'null');
66 shouldBe('context.getParameter(context.TRANSFORM_FEEDBACK_BUFFER_BINDING)', 'null');
67 shouldBe('context.getParameter(context.TRANSFORM_FEEDBACK_PAUSED)', 'false');
68 shouldBe('context.getParameter(context.UNIFORM_BUFFER_BINDING)', 'null');
70 shouldBe('context.getParameter(context.UNPACK_IMAGE_HEIGHT)', '0');
71 shouldBe('context.getParameter(context.UNPACK_ROW_LENGTH)', '0');
72 shouldBe('context.getParameter(context.UNPACK_SKIP_IMAGES)', '0');
73 shouldBe('context.getParameter(context.UNPACK_SKIP_PIXELS)', '0');
74 shouldBe('context.getParameter(context.UNPACK_SKIP_ROWS)', '0');
75 shouldBe('context.getParameter(context.VERTEX_ARRAY_BINDING)', 'null');
77 debug("");
78 debug("Check minimum values");
80 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_3D_TEXTURE_SIZE)', '256');
81 shouldBeType('context.getParameter(context.MAX_3D_TEXTURE_SIZE)', 'Number');
83 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_ARRAY_TEXTURE_LAYERS)', '256');
84 shouldBeType('context.getParameter(context.MAX_ARRAY_TEXTURE_LAYERS)', 'Number');
86 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_CLIENT_WAIT_TIMEOUT_WEBGL)', '0');
87 shouldBeType('context.getParameter(context.MAX_CLIENT_WAIT_TIMEOUT_WEBGL)', 'Number');
89 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_COLOR_ATTACHMENTS)', '4');
90 shouldBeType('context.getParameter(context.MAX_COLOR_ATTACHMENTS)', 'Number');
92 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_COMBINED_UNIFORM_BLOCKS)', '24');
93 shouldBeType('context.getParameter(context.MAX_COMBINED_UNIFORM_BLOCKS)', 'Number');
95 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_DRAW_BUFFERS)', '4');
96 shouldBeType('context.getParameter(context.MAX_DRAW_BUFFERS)', 'Number');
98 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_ELEMENT_INDEX)', '16777215'); // 2^24 - 1
99 shouldBeType('context.getParameter(context.MAX_ELEMENT_INDEX)', 'Number');
101 shouldBeType('context.getParameter(context.MAX_ELEMENTS_INDICES)', 'Number');
102 shouldBeType('context.getParameter(context.MAX_ELEMENTS_VERTICES)', 'Number');
104 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_FRAGMENT_INPUT_COMPONENTS)', '60');
105 shouldBeType('context.getParameter(context.MAX_FRAGMENT_INPUT_COMPONENTS)', 'Number');
107 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_FRAGMENT_UNIFORM_BLOCKS)', '12');
108 shouldBeType('context.getParameter(context.MAX_FRAGMENT_INPUT_COMPONENTS)', 'Number');
110 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_FRAGMENT_UNIFORM_COMPONENTS)', '896');
111 shouldBeType('context.getParameter(context.MAX_FRAGMENT_UNIFORM_COMPONENTS)', 'Number');
113 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_PROGRAM_TEXEL_OFFSET)', '7');
114 shouldBeType('context.getParameter(context.MAX_PROGRAM_TEXEL_OFFSET)', 'Number');
116 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_SAMPLES)', '4');
117 shouldBeType('context.getParameter(context.MAX_PROGRAM_TEXEL_OFFSET)', 'Number');
119 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_SERVER_WAIT_TIMEOUT)', '0');
120 shouldBeType('context.getParameter(context.MAX_SERVER_WAIT_TIMEOUT)', 'Number');
122 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_TEXTURE_LOD_BIAS)', '2.0');
123 shouldBeType('context.getParameter(context.MAX_TEXTURE_LOD_BIAS)', 'Number');
125 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS)', '64');
126 shouldBeType('context.getParameter(context.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS)', 'Number');
128 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)', '4');
129 shouldBeType('context.getParameter(context.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)', 'Number');
131 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS)', '4');
132 shouldBeType('context.getParameter(context.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS)', 'Number');
134 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_UNIFORM_BLOCK_SIZE)', '16384');
135 shouldBeType('context.getParameter(context.MAX_UNIFORM_BLOCK_SIZE)', 'Number');
137 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_UNIFORM_BUFFER_BINDINGS)', '24');
138 shouldBeType('context.getParameter(context.MAX_UNIFORM_BUFFER_BINDINGS)', 'Number');
140 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_VARYING_COMPONENTS)', '60');
141 shouldBeType('context.getParameter(context.MAX_VARYING_COMPONENTS)', 'Number');
143 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_VERTEX_OUTPUT_COMPONENTS)', '64');
144 shouldBeType('context.getParameter(context.MAX_VERTEX_OUTPUT_COMPONENTS)', 'Number');
146 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_VERTEX_UNIFORM_BLOCKS)', '12');
147 shouldBeType('context.getParameter(context.MAX_VERTEX_UNIFORM_BLOCKS)', 'Number');
149 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_VERTEX_UNIFORM_COMPONENTS)', '1024');
150 shouldBeType('context.getParameter(context.MAX_VERTEX_UNIFORM_COMPONENTS)', 'Number');
152 shouldBeLessThanOrEqual('context.getParameter(context.MIN_PROGRAM_TEXEL_OFFSET)', '-8');
153 shouldBeType('context.getParameter(context.MIN_PROGRAM_TEXEL_OFFSET)', 'Number');
155 shouldBeGreaterThanOrEqual('context.getParameter(context.UNIFORM_BUFFER_OFFSET_ALIGNMENT)', '1');
156 shouldBeType('context.getParameter(context.UNIFORM_BUFFER_OFFSET_ALIGNMENT)', 'Number');
158 var minCombinedFragmentUniformComponents = context.getParameter(context.MAX_FRAGMENT_UNIFORM_BLOCKS) * context.getParameter(context.MAX_UNIFORM_BLOCK_SIZE) / 4 + context.getParameter(context.MAX_FRAGMENT_UNIFORM_COMPONENTS);
159 var minCombinedVertexUniformComponents = context.getParameter(context.MAX_VERTEX_UNIFORM_BLOCKS) * context.getParameter(context.MAX_UNIFORM_BLOCK_SIZE) / 4 + context.getParameter(context.MAX_VERTEX_UNIFORM_COMPONENTS);
161 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS)', minCombinedFragmentUniformComponents + '');
162 shouldBeType('context.getParameter(context.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS)', 'Number');
164 shouldBeGreaterThanOrEqual('context.getParameter(context.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS)', minCombinedVertexUniformComponents + '');
165 shouldBeType('context.getParameter(context.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS)', 'Number');
167 shouldBe('context.getError()', 'context.NO_ERROR');
170 debug("");
171 var successfullyParsed = true;
173 </script>
174 <script src="../../js/js-test-post.js"></script>
176 </body>
177 </html>