Skip to content

WebGPU

Published

WebGPU — WebGPU exposes GPU rendering and compute to the web via navigator.gpu.requestAdapter()/requestDevice() and the WGSL shading language.

  • Legend
  • Yes
  • Partial
  • Flag
  • No
  • Unknown
Browser / PlatformSupportVersionsConfidenceSourceNotes
Chrome (Desktop)Partial113 → 144highsource12
Chrome (Android)Yes121highsource—
Edge (Desktop)Partial113 → 144highsource345
Firefox (Desktop)Partial141highsource67891011
Firefox (Android)No—highsource12
Safari (macOS)Yes26highsource—
Safari (iOS)Yes26highsource13
Samsung InternetYes25.0highsource14
WebView (Android)Yes121highsource15
  1. Supported on ChromeOS, macOS, Windows, and Linux (Intel Gen12+ GPUs only).
  2. Supported on ChromeOS, macOS, and Windows.
  3. Supported on ChromeOS, macOS, Windows, and Linux (Intel Gen12+ GPUs only).
  4. Supported on ChromeOS, macOS, and Windows.
  5. Derived by browser-compat-data mirroring from Chrome.
  6. Supports all contexts except service workers. See bug 1942431 (https://bugzil.la/1942431).
  7. Supports Windows since Firefox 141. See bug 1972486 (https://bugzil.la/1972486).
  8. Supports macOS Tahoe on Apple silicon since Firefox 145. See bug 1992212 (https://bugzil.la/1992212).
  9. Supports older macOS versions on Apple silicon since Firefox 147. See bug 1993341 (https://bugzil.la/1993341).
  10. Does not support macOS on Intel CPUs. See bug 2004105 (https://bugzil.la/2004105).
  11. Does not support Linux. See bug 2006676 (https://bugzil.la/2006676).
  12. No Firefox for Android support is recorded in browser-compat-data.
  13. Derived by browser-compat-data mirroring from Safari.
  14. Derived by browser-compat-data mirroring from Chrome Android.
  15. Derived by browser-compat-data mirroring from Chrome Android.

Source data: /compatibility/webgpu.json · Global usage: 72 % (StatCounter 2026-05)

Source: spec · MDN · Last verified 2026-10-03 · Confidence: high (computed from sources)

Request an adapter, then a device from that adapter, before issuing any GPU work:

async function getGpuDevice() {
const adapter = await navigator.gpu.requestAdapter();
if (!adapter) {
throw new Error('No WebGPU adapter available.');
}
return adapter.requestDevice();
}

Check for navigator.gpu before requesting an adapter, and give the reader a fallback path both when the API is absent and when no adapter is available:

async function initGpu() {
if (!('gpu' in navigator)) {
showFallbackRenderer();
return;
}
try {
await getGpuDevice();
} catch {
showFallbackRenderer();
}
}
  • requestAdapter() can resolve to null even when navigator.gpu exists — the user agent may decline to return an adapter, so check the resolved value before calling requestDevice() on it.
  • Chrome for Android has shipped WebGPU since Chrome 121 — check the support table above rather than assuming every device on that version supports it.
  • Firefox enabled WebGPU by default on Windows starting in Firefox 141; support on other platforms differs — check the support table above for the current per-OS status.
  • Safari enabled WebGPU by default starting in Safari 26; earlier Safari versions do not support it.

For the full reference, see WebGPU: GPU rendering and compute in the browser.

See also WebCodecs API.

← Back to the Compatibility explorer.