| <!-- 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> |
| |