Implement WebGPUQueue and device.getQueue()
[WebKit-https.git] / LayoutTests / webgpu / shader-modules.html
1 <!DOCTYPE html>
2 <html>
3 <script src="../resources/js-test-pre.js"></script>
4 <script src="js/basic-webgpu-functions.js"></script>
5 <script id="library_incomplete" type="x-shader/x-metal">
6     #include <metal_stdlib>
7     
8     using namespace metal;
9     
10     vertex Vertex vertex_main(uint vid [[vertex_id]])
11     {
12         Vertex v;
13         switch (vid) {
14         case 0:
15             v.position = float4(-.75, -.75, 0, 1);
16             break;
17         case 1:
18             v.position = float4(.75, -.75, 0, 1);
19             break;
20         case 2:
21             v.position = float4(0, .75, 0, 1);
22             break;
23         default:
24             v.position = float4(0, 0, 0, 1);
25         }
26         return v;
27     }
28     
29     fragment float4 fragment_main(Vertex vertexIn [[stage_in]])
30     {
31         return float4(1.0, 0.0, 0.0, 1.0);
32     }
33 </script>
34 <script>
35 if (window.testRunner)
36     window.testRunner.dumpAsText();
37
38 function setUpShaders() {
39     let shaderDescriptor0 = {
40         code : "Hello World"
41     };
42     let shaderModule = defaultDevice.createShaderModule(shaderDescriptor0);
43     if (!shaderModule)
44         testPassed("Bad shader code should not create a module.");
45     else
46         testFailed("Bad shader code created a valid module!");
47
48     let shaderDescriptor1 = {
49         code : document.getElementById("library_incomplete").text
50     };
51
52     shaderModule = defaultDevice.createShaderModule(shaderDescriptor1);
53     if (!shaderModule)
54         testPassed("Incomplete shader code should not create a module.");
55     else
56         testFailed("Incomplete shader code created a valid module!");
57     
58     let shaderDescriptor2 = {
59         code : shaderCode
60     };
61
62     shaderModule = defaultDevice.createShaderModule(shaderDescriptor2);
63     if (shaderModule)
64         testPassed("Shader module created successfully.");
65     else 
66         testFailed("Shader module not created successfully!");
67 }
68
69 runWebGPUTests([setUpShaders]);
70
71 successfullyParsed = true;
72 </script>
73 <script src="../resources/js-test-post.js"></script>
74 </html>