2020-07-28 22:26:21 +00:00
|
|
|
<!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)
|
2021-03-04 21:25:46 +00:00
|
|
|
device.queue.writeBuffer(buffer, 0, arrayBuf, 0);
|
2020-07-28 22:26:21 +00:00
|
|
|
const texture = device.createTexture({size: [2,2,1], dimension: "2d", format: "rgba8unorm", usage: GPUTextureUsage.COPY_DST | GPUTextureUsage.COPY_SRC });
|
2021-03-04 21:25:46 +00:00
|
|
|
device.queue.writeTexture({ texture }, arrayBuf, { bytesPerRow:8 }, [2,2,1]);
|
2020-07-28 22:26:21 +00:00
|
|
|
// this isn't a process check, we need to read back the contents and verify the writes happened
|
|
|
|
ok(device !== undefined, '');
|
|
|
|
};
|
|
|
|
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
2022-03-23 12:43:00 +00:00
|
|
|
func()
|
|
|
|
.catch((e) => ok(false, "Unhandled exception " + e))
|
|
|
|
.finally(() => SimpleTest.finish());
|
2020-07-28 22:26:21 +00:00
|
|
|
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|