tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_shared_array_buffer.html (1694B)


      1 <!doctype html>
      2 <html>
      3  <head>
      4    <meta charset="utf-8" />
      5    <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6    <link rel="stylesheet" href="/tests/SimpleTest/test.css" />
      7  </head>
      8  <body>
      9    <script>
     10      ok(
     11        SpecialPowers.getBoolPref("dom.webgpu.enabled"),
     12        "Pref should be enabled."
     13      );
     14 
     15      const set_bind_group_null = async function () {
     16        const adapter = await navigator.gpu.requestAdapter();
     17        ok(adapter !== undefined, "adapter !== undefined");
     18        const device = await adapter.requestDevice();
     19        ok(device !== undefined, "device !== undefined");
     20 
     21        const sharedData = new WebAssembly.Memory({
     22          initial: 1,
     23          maximum: 1,
     24          shared: true,
     25        });
     26 
     27        const buffer = device.createBuffer({
     28          mappedAtCreation: true,
     29          size: 128,
     30          usage: GPUBufferUsage.COPY_DST,
     31        });
     32        device.queue.writeBuffer(buffer, 0, sharedData.buffer, 0, 128);
     33        await device.queue.submit([]);
     34        ok(true, "Could use a `SharedArrayBuffer` to write to a buffer.");
     35 
     36        const texture = device.createTexture({
     37          mappedAtCreation: true,
     38          size: [128, 1],
     39          format: "r8uint",
     40          usage: GPUTextureUsage.COPY_DST,
     41        });
     42        device.queue.writeTexture({ texture }, sharedData.buffer, {}, [128, 1]);
     43        await device.queue.submit([]);
     44        ok(true, "Could use a `SharedArrayBuffer` to write to a texture.");
     45      };
     46 
     47      SimpleTest.waitForExplicitFinish();
     48 
     49      set_bind_group_null()
     50        .catch(e => ok(false, `Unhandled exception ${e}`))
     51        .finally(() => SimpleTest.finish());
     52    </script>
     53  </body>
     54 </html>