Skip to content

Instantly share code, notes, and snippets.

@JusSn
Created December 18, 2018 19:12
Show Gist options
  • Save JusSn/0382ee45aaf17088c17bf1fc54a31564 to your computer and use it in GitHub Desktop.
Save JusSn/0382ee45aaf17088c17bf1fc54a31564 to your computer and use it in GitHub Desktop.
<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebGPUEnabled=true ] -->
<meta charset=utf-8>
<title>Create WebGPUBindGroupLayout.</title>
<body>
<script src="js/webgpu-functions.js"></script>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
function createBindGroupLayoutBinding() {
return {
binding: 0,
visibility: WebGPUShaderStageBit.FRAGMENT | WebGPUShaderStageBit.VERTEX,
type: "storageBuffer"
};
}
function createBadLayoutBinding() {
return {
binding: 0,
visibility: WebGPUShaderStageBit.FRAGMENT | WebGPUShaderStageBit.VERTEX,
type: "badEnum"
};
}
test(() => {
const bindGroupLayoutDescriptor = { bindings: [createBindGroupLayoutBinding()] };
assert_not_equals(bindGroupLayoutDescriptor.bindings[0].visibility & WebGPUShaderStageBit.FRAGMENT, 0);
assert_not_equals(bindGroupLayoutDescriptor.bindings[0].visibility & WebGPUShaderStageBit.VERTEX, 0);
assert_equals(bindGroupLayoutDescriptor.bindings[0].type, "storageBuffer");
}, "Create a basic WebGPUBindGroupLayoutDescriptor.");
promise_test(() => {
const bindGroupLayout = await getBasicDevice().createBindGroupLayout({ bindings: [createBindGroupLayoutBinding()] });
assert_true(bindGroupLayout instanceof WebGPUBindGroupLayout, "createBindGroupLayout returned a WebGPUBindGroupLayout");
}, "Create a basic WebGPUBindGroupLayout with a WebGPUDevice.");
promise_test(() => {
const bindGroupLayout = await getBasicDevice().createBindGroupLayout({ bindings: [createBindGroupLayoutBinding(), createBadLayoutBinding()] });
assert_true(bindGroupLayout instanceof WebGPUBindGroupLayout, "createBindGroupLayout returned a WebGPUBindGroupLayout");
}, "Do not create a WebGPUBindGroupLayout from a bad descriptor.");
</script>
</body>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment