Skip to content

Implementation Status

Dzmitry Malyshau edited this page Feb 12, 2020 · 27 revisions

This page shows the current implementation status of the WebGPU API spec in browsers. It also lists some resources (samples, demos) for enthusiastic web developers.

The public-gpu@w3.org mailing list is a good place to ask questions or provide feedback on the API.

Implementation Status

Chromium (SPIR-V compatible - In Progress)

Work is in progress in Chrome Canary and Edge Canary

Feature/Platform Android Chrome OS Linux Mac Windows
Device 👷 👷
Rendering 👷 👷
└ Canvas 👷 👷
└ Textures 👷 👷
└ Multisampling 👷 👷
└ Dynamic Buffer Offset 👷 👷
Compute 👷 👷
└ Basic Compute 👷 👷
└ Texture Storage
  • Root Issue #852089, and blocking issues, are the authoritative reference. Search for known bugs before filing new bugs.
  • As GPU sandboxing isn't implemented yet for the WebGPU API, it is possible to read GPU data for other processes. Avoid leaving it enabled when browsing the untrusted web.
  • The chrome://flags/#enable-unsafe-webgpu flag must be enabled.

Edge

N/A

Firefox (SPIR-V compatible)

Work is in progress in Nightly, enabled by "dom.webgpu.enabled" pref. The implementation is based on wgpu project in Rust.

  • Initialization
  • Resources
    • buffers
      • mapping
    • textures & views
    • samplers
  • Binding
    • pipeline layouts
    • bind groups
  • Rendering
    • passes
    • pipelines
  • Computing
    • passes
    • pipelines
  • Presentation
    • Windows
    • macOS
    • Linux
    • Android

Basically, Firefox is at the state of running the compute samples, and will soon be able to render, but unable to present anything to canvas yet.

All the issues and feature requests are tracked by the Graphics: WebGPU component in BugZilla.

Safari (WHLSL compatible - In Progress)

Work is in progress in Safari Technology Preview.

To enable WebGPU, first make sure the Develop menu is visible using SafariPreferencesAdvancedShow Develop menu in menu bar. Then, in the Develop menu, make sure Experimental FeaturesWebGPU is checked. Avoid leaving it enabled when browsing the untrusted web.

Bugs can be viewed and filed here.

Servo (SPIR-V compatible)

Work in progress to expose WebGPU initialization behind the "dom.webgpu.enabled" pref.

Servo can run the compute example, which has to be slightly modified because of the JavaScript engine limitiations.

Samples

Articles

Frameworks

You can’t perform that action at this time.