blob: d8cf028be6f01679580cc0962931b78a5f9ea12d [file] [log] [blame]
<!DOCTYPE html>
<html>
<script src="../resources/js-test-pre.js"></script>
<script src="js/basic-webgpu-functions.js"></script>
<script id="library_incomplete" type="x-shader/x-metal">
#include <metal_stdlib>
using namespace metal;
vertex Vertex vertex_main(uint vid [[vertex_id]])
{
Vertex v;
switch (vid) {
case 0:
v.position = float4(-.75, -.75, 0, 1);
break;
case 1:
v.position = float4(.75, -.75, 0, 1);
break;
case 2:
v.position = float4(0, .75, 0, 1);
break;
default:
v.position = float4(0, 0, 0, 1);
}
return v;
}
fragment float4 fragment_main(Vertex vertexIn [[stage_in]])
{
return float4(1.0, 0.0, 0.0, 1.0);
}
</script>
<script>
if (window.testRunner)
window.testRunner.dumpAsText();
function setUpShaders() {
let shaderDescriptor0 = {
code : "Hello World"
};
let shaderModule = defaultDevice.createShaderModule(shaderDescriptor0);
if (!shaderModule)
testPassed("Bad shader code should not create a module.");
else
testFailed("Bad shader code created a valid module!");
let shaderDescriptor1 = {
code : document.getElementById("library_incomplete").text
};
shaderModule = defaultDevice.createShaderModule(shaderDescriptor1);
if (!shaderModule)
testPassed("Incomplete shader code should not create a module.");
else
testFailed("Incomplete shader code created a valid module!");
let shaderDescriptor2 = {
code : shaderCode
};
shaderModule = defaultDevice.createShaderModule(shaderDescriptor2);
if (shaderModule)
testPassed("Shader module created successfully.");
else
testFailed("Shader module not created successfully!");
}
runWebGPUTests([setUpShaders]);
successfullyParsed = true;
</script>
<script src="../resources/js-test-post.js"></script>
</html>