Browser Support in 2026

In September 2026, caniuse.com 3,038 puts WebGPU at 87.35% of global usage (85.72% full plus 1.63% partial), while MDN 102 still labels it Limited availability rather than Baseline, because Firefox 555 and Safari 10 do not enable it everywhere.

Where WebGPU is enabled by default (caniuse.com and the gpuweb Implementation Status wiki)
Browser On by default since Where
Chrome 1 , Edge 113 (2023) Windows, macOS, ChromeOS; Android from 121
Chrome on Linux 144 Intel Gen12+ GPUs; NVIDIA on Wayland from 147
Safari 26 (September 2025) macOS 26, iOS, iPadOS and visionOS 26
Firefox 141 (July 2025) Windows; Apple Silicon Macs from 145

WebGPU exists only in secure contexts (HTTPS or localhost), on the main thread and in workers. Detect it in two steps, because navigator.gpu can exist while requestAdapter() returns null on a blocklisted GPU:

A two-step WebGPU check that also clears a canvasHTMLLive
<style>body { display: flex; gap: 16px } pre { font-size: 15px }</style>
<canvas id="swatch" width="110" height="110"></canvas>
<pre id="report"></pre>
<script type="module">
  let text = 'WebGPU: not available, fall back to WebGL 2';
  const adapter = navigator.gpu && await navigator.gpu.requestAdapter();
  if (navigator.gpu && !adapter) text = 'WebGPU: no usable adapter, fall back';
  if (adapter) {
    const device = await adapter.requestDevice();
    const context = swatch.getContext('webgpu');
    const format = navigator.gpu.getPreferredCanvasFormat();
    context.configure({ device, format });
    const encoder = device.createCommandEncoder();
    const view = context.getCurrentTexture().createView();
    encoder.beginRenderPass({ colorAttachments: [{ view, loadOp: 'clear', storeOp: 'store',
      clearValue: [0.08, 0.40, 0.75, 1] }] }).end();
    device.queue.submit([encoder.finish()]);
    await device.queue.onSubmittedWorkDone();
    text = `WebGPU: available\nGPU: ${adapter.info.vendor}, ${adapter.info.architecture}\n`
      + `Canvas format: ${format}\nOptional features: ${adapter.features.size}`;
  }
  report.textContent = text;
  window.__done = true;
</script>
Browser output of Listing 4.2
Browser output of 2

The blue square is a real render pass on this book's GTX 1650.