| <!-- 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 sampler = device.createSampler(); |
| let video = new VideoFrame(new ArrayBuffer(16), { codedWidth: 2, codedHeight: 2, format: 'BGRA', timestamp: 0 }); |
| let externalTexture = device.importExternalTexture({ source: video, colorSpace: 'srgb' }); |
| let bindGroupLayout = device.createBindGroupLayout({ |
| entries: [ |
| { binding: 1, visibility: GPUShaderStage.FRAGMENT, externalTexture: {} }, |
| { binding: 0, visibility: GPUShaderStage.FRAGMENT, sampler: {} }, |
| ], |
| }); |
| let bindGroup = device.createBindGroup({ |
| layout: bindGroupLayout, |
| entries: [ |
| { binding: 1, resource: externalTexture }, |
| { binding: 0, resource: sampler } |
| ], |
| }); |
| await device.queue.onSubmittedWorkDone(); |
| debug('Pass') |
| globalThis.testRunner?.notifyDone(); |
| } |
| globalThis.testRunner?.dumpAsText(); |
| globalThis.testRunner?.waitUntilDone(); |
| |
| run(); |
| </script> |
| |