blob: 0d24f4bd712e28684dae9b8adead05c11b30935f [file] [log] [blame]
<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebGPUEnabled=true ] -->
<meta charset=utf-8>
<title>Create GPUBindGroupLayout.</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: GPUShaderStageBit.FRAGMENT | GPUShaderStageBit.VERTEX,
type: "storage-buffer"
};
}
test(() => {
const bindGroupLayoutDescriptor = { bindings: [createBindGroupLayoutBinding()] };
assert_not_equals(bindGroupLayoutDescriptor.bindings[0].visibility & GPUShaderStageBit.FRAGMENT, 0);
assert_not_equals(bindGroupLayoutDescriptor.bindings[0].visibility & GPUShaderStageBit.VERTEX, 0);
assert_equals(bindGroupLayoutDescriptor.bindings[0].type, "storage-buffer");
}, "Create a basic GPUBindGroupLayoutDescriptor.");
promise_test(async () => {
const device = await getBasicDevice();
const bindGroupLayout = device.createBindGroupLayout({ bindings: [createBindGroupLayoutBinding()] });
assert_true(bindGroupLayout instanceof GPUBindGroupLayout, "createBindGroupLayout returned a GPUBindGroupLayout");
const pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] });
assert_true(pipelineLayout instanceof GPUPipelineLayout, "createPipelineLayout returned a GPUPipelineLayout");
}, "Create a basic GPUPipelineLayout wtih a GPUDevice.");
</script>
</body>