blob: 519d910a9472fc81430a4a0dabb48b93157ce055 [file]
<!-- webkit-test-runner [ enableMetalDebugDevice=true ] -->
<script src="../../../resources/js-test-pre.js"></script>
<script>
async function run() {
let adapter = await navigator.gpu.requestAdapter();
let device = await adapter.requestDevice();
let pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: []});
let shaderModule = device.createShaderModule({
code: `
@vertex fn e() -> @builtin(position) vec4f {
return vec4f();
}
struct FragmentOutput0 {
@location(0) g: i32
}
@fragment fn h() -> FragmentOutput0 {
var f: FragmentOutput0;
return f;
}
`
})
let bindGroupLayout = device.createBindGroupLayout({
entries: [
{ binding: 0, visibility: GPUShaderStage.VERTEX, sampler: {} }
]
});
let buffer = device.createBuffer({ size: 3668, usage: GPUBufferUsage.INDEX });
let sampler = device.createSampler();
let bindGroup = device.createBindGroup({ layout: bindGroupLayout, entries: [{ binding: 0, resource: sampler }] });
let renderPipeline = await device.createRenderPipelineAsync({
layout: pipelineLayout,
fragment: { module: shaderModule, targets: [{ format: 'r16sint' }]},
vertex: { module: shaderModule }
});
let renderPipeline2 = await device.createRenderPipelineAsync({
layout: pipelineLayout,
fragment: { module: shaderModule, targets: [{ format: 'r16sint' }]},
vertex: { module: shaderModule }
});
let renderBundleEncoder = device.createRenderBundleEncoder({ colorFormats: ['r16sint'] });
renderBundleEncoder.setBindGroup(3, bindGroup);
renderBundleEncoder.setPipeline(renderPipeline);
renderBundleEncoder.drawIndexed(1);
renderBundleEncoder.setIndexBuffer(buffer, 'uint32', 3_668);
renderBundleEncoder.setPipeline(renderPipeline2);
await device.queue.onSubmittedWorkDone();
debug('Pass')
globalThis.testRunner?.notifyDone();
}
globalThis.testRunner?.dumpAsText();
globalThis.testRunner?.waitUntilDone();
run();
</script>