<!-- 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 texture = device.createTexture({ size: [1, 1], format: 'depth24plus', usage: GPUTextureUsage.RENDER_ATTACHMENT });
    let textureView = texture.createView();
    texture.destroy()
    device.createCommandEncoder().beginRenderPass({
        colorAttachments: [],
        depthStencilAttachment: {
            view: textureView,
            depthClearValue: 0,
            depthLoadOp: 'load',
            depthStoreOp: 'discard',
        },
    })
    await device.queue.onSubmittedWorkDone();
    debug('Pass')
    globalThis.testRunner?.notifyDone();
}
globalThis.testRunner?.dumpAsText();
globalThis.testRunner?.waitUntilDone();

run();
</script>

