diff options
Diffstat (limited to 'dom/webgpu/mochitest/test_queue_write.html')
-rw-r--r-- | dom/webgpu/mochitest/test_queue_write.html | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/dom/webgpu/mochitest/test_queue_write.html b/dom/webgpu/mochitest/test_queue_write.html new file mode 100644 index 0000000000..585c1617cd --- /dev/null +++ b/dom/webgpu/mochitest/test_queue_write.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8" /> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" href="/tests/SimpleTest/test.css" /> + </head> + <body> + <script> + ok( + SpecialPowers.getBoolPref("dom.webgpu.enabled"), + "Pref should be enabled." + ); + + const func = async function () { + const adapter = await navigator.gpu.requestAdapter(); + const device = await adapter.requestDevice(); + const buffer = device.createBuffer({ + size: 16, + usage: + GPUBufferUsage.COPY_DST | + GPUBufferUsage.COPY_SRC | + GPUBufferUsage.VERTEX, + }); + const arrayBuf = new ArrayBuffer(16); + new Int32Array(arrayBuf).fill(5); + device.queue.writeBuffer(buffer, 0, arrayBuf, 0); + const texture = device.createTexture({ + size: [2, 2, 1], + dimension: "2d", + format: "rgba8unorm", + usage: GPUTextureUsage.COPY_DST | GPUTextureUsage.COPY_SRC, + }); + device.queue.writeTexture( + { texture }, + arrayBuf, + { bytesPerRow: 8 }, + [2, 2, 1] + ); + // this isn't a process check, we need to read back the contents and verify the writes happened + ok(device !== undefined, ""); + }; + + SimpleTest.waitForExplicitFinish(); + func() + .catch(e => ok(false, "Unhandled exception " + e)) + .finally(() => SimpleTest.finish()); + </script> + </body> +</html> |