| WebGPU | |
|---|---|
| Status | Candidate recommendation (CR) |
| Year started | 18 May 2021 (2021-05-18) |
| First published | 18 May 2021 (2021-05-18) |
| Latest version | W3C Candidate recommendation (As of 2025) |
| Organization | W3C |
| Committee | |
| Editors |
|
| Related standards | |
| Domain | |
| Website | www |
WebGPU API is aJavaScript,Rust,C++, andCAPI for cross-platform efficientgraphics processing unit (GPU) access. Using a system's underlyingVulkan,Metal, orDirect3D 12 technologies, WebGPU allows for graphics processing, games, and more, as well as AI and machine learning applications. WebGPU is intended to supersede the olderWebGL as the main graphics standard for the Web.[2]
In JavaScript, WebGPU can be provided by aweb browser or other JavaScript environment likeNode.js andDeno. Rust and C++ can use their respective implementations of the WebGPU specification. Other languages likePython,Java, andGo can use WebGPU by extending the C language specification.
Google Chrome andMicrosoft Edge first released WebGPU support in April 2023.[2][3]Safari debuted WebGPU support in June 2025 with Safari 26.[4]Firefox first released WebGPU in July 2025 with Firefox 141.[3] TheW3C standard is a candidate recommendation.
WebGPU enables 3D graphics within anHTMLcanvas. It also has robust support forgeneral-purpose GPU computations.[5]
WebGPU uses its ownshading language calledWebGPU Shading Language (WGSL) that was designed to be trivially translatable toSPIR-V, until complaints caused redirection into a more traditional design, similar to other shading languages. The syntax is similar toRust.[6] Tint is aGoogle-madecompiler for WGSL.[7] Naga is a similar project developed for the needs of wgpu-rs.[8]
BothGoogle Chrome andFirefox support WebGPU and WGSL. Firefox andDeno use the Rust wgpu library.[9]Safari follows upstream specifications of both WebGPU and WGSL.[3]
Chrome version 113 enabled initial WebGPU support onWindows devices withDirect3D 12,ChromeOS devices withVulkan, andmacOS withMetal.[2] This support forAndroid was enabled in version 121.[3]
On June 8, 2016, Google showed "Explicit web graphics API" presentation to theWebGL working group (during the bi-annual face to face meeting).[10] The presentation explored the basic ideas and principles of building a new API to eventually replace WebGL, aka "WebGL Next".
On January 24, 2017,Khronos hosted an IP-free meeting dedicated to discussion of "WebGL Next" ideas, collided with WebGL working group meeting in Vancouver.[11] Google team presented the NXT prototype implementing a new API that could run inChromium with OpenGL, or standalone with OpenGL and Metal. NXT borrowed concepts from all of Vulkan, Direct3D 12, and Metal native APIs. Apple and Mozilla representatives also showed their prototypes built onSafari andServo correspondingly, both of which closely replicated the Metal API.
On February 7, 2017, Apple'sWebKit team proposed the creation of the W3C community group to design the API. At the same time they announced a technicalproof of concept and proposal under the name"WebGPU", based on concepts in Apple'sMetal.[12][13][14] The WebGPU name was later adopted by the community group as a working name for the future standard rather than just Apple's initial proposal.[15] The initial proposal has been renamed to "WebMetal" to avoid further confusion.[16]
The W3C "GPU for the Web" Community Group was launched on February 16, 2017. At this time, all of Apple, Google, and Mozilla had experiments in the area, but only Apple's proposal was officially submitted to the "gpuweb-proposals" repository.[17][18][19]Shortly after, on March 21, 2017, Mozilla submitted a proposal for WebGL Next within Khronos repository, based on the Vulkan design.[20][21]
On June 1, 2018, citing "resolution on most-high level issues" in the cross-browser standardization effort, Google'sChrome team announced intent to implement the future WebGPU standard.[15]
On 13 February, 2020, Google unveiled Tint as an alternative to WHLSL textual language proposal to WebGPU API, and the language eventually became the standardizedWebGPU Shading Language (WGSL), and Tint became the name of compiler within Dawn, the WebGPU implementation of Chromium.