| <!-- webkit-test-runner [ enableMetalShaderValidation=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 shaderModule = device.createShaderModule({ code: ` |
| struct d { |
| @location(0) e: vec4<f32>, |
| @location(3) f: vec4<f32>, |
| @location(1) g: vec4<i32>, |
| @location(2) p: i32 |
| } |
| @fragment fn h() -> d { |
| return d(); |
| } |
| @vertex fn k() -> @builtin(position) vec4f { |
| return vec4f(); |
| } |
| `}); |
| let pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: [] }); |
| let renderPipeline = await device.createRenderPipelineAsync({ |
| layout: pipelineLayout, |
| fragment: { |
| module: shaderModule, |
| targets: [{ format: 'rgba8unorm-srgb' }] |
| }, |
| vertex: { module: shaderModule } |
| }); |
| let renderBundleEncoder = device.createRenderBundleEncoder({ |
| colorFormats: ['rgba8unorm-srgb'] |
| }); |
| renderBundleEncoder.setVertexBuffer(0, null); |
| renderBundleEncoder.setPipeline(renderPipeline); |
| device.destroy(); |
| renderBundleEncoder.draw(0); |
| renderBundleEncoder.finish(); |
| await device.queue.onSubmittedWorkDone(); |
| debug('Pass') |
| globalThis.testRunner?.notifyDone(); |
| } |
| |
| globalThis.testRunner?.dumpAsText(); |
| globalThis.testRunner?.waitUntilDone(); |
| |
| run(); |
| </script> |
| |