WebGPU
WebGPU is the working name for a future web standard and JavaScript API for accelerated graphics and compute, aiming to provide "modern 3D graphics and computation capabilities". It is developed by the W3C GPU for the Web Community Group with engineers from Apple, Mozilla, Microsoft, Google, and others.[1]
Original author(s) | W3C |
---|---|
Developer(s) | W3C, Apple Inc., Mozilla, Microsoft, Google, Open-source community |
Initial release | Unreleased |
Repository | |
Platform | Web platform |
Available in | English |
Type | API |
Website | webgpu |
Unlike WebGL, WebGPU is not a direct port of any existing native API. It is based on concepts in Vulkan, Metal, and Direct3D 12 and is intended to provide high performance on these modern graphics APIs across mobile and desktop platforms.[2]
The first conceptual prototype called NXT was showcased in early 2017 by Chromium team.
History
On June 8, 2016, Google showed "Explicit web graphics API" presentation to the WebGL working group (during the bi-annual face to face meeting).[3] 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.[4] Google team presented the NXT prototype implementing a new API that could run in Chromium 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 on Safari and Servo correspondingly, both of which closely replicated Metal API.
W3C Working Group
On February 7, 2017, Apple's WebKit team proposed the creation of the W3C community group to design the API. At the same time they announced a technical proof of concept and proposal under the name "WebGPU", based on concepts in Apple's Metal.[5][6][7] 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.[2] The initial proposal has been renamed to "WebMetal" to avoid further confusion.[8]
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.[9][10][11] Shortly after, on March 21, 2017, Mozilla submitted a proposal for WebGL Next within Khronos repository, based on the Vulkan design.[12][13]
On June 1, 2018, citing "resolution on most-high level issues" in the cross-browser standardization effort, Google's Chrome team announced intent to implement the future WebGPU standard.[2]
Technology
WebGPU uses its own shading language called WGSL that is trivially translatable to SPIR-V.[14] This choice is a compromise among three proposals: textual WebMetal by Apple, textual WebHLSL / WSL by Apple Safari, and binary SPIR-V by Mozilla.
Implementation
Both Chrome and Firefox support WebGPU with SPIR-V, with work ongoing for the WGSL front-end. Safari supports WebGPU with WSL.[15]
See also
- Direct3D 12
- Khronos Group
- Metal (API)
- OpenGL
- Vulkan (API)
- WebCL
- WebGL
- Web platform
References
- "GPU for the Web Community Group". w3.org. Retrieved 2018-09-11.
- Wallez, Corentin (2018-05-31). "Intent to Implement: WebGPU". blink-dev (Mailing list). Retrieved 2018-08-13.
- Wallez, Corentin. "Explicit web graphics API". Retrieved 2019-06-25.
- Wallez, Corentin; Ninomiya, Kai. "WebGL Next investigations". Retrieved 2019-06-25.
- "Next-generation 3D Graphics on the Web". WebKit. 2017-02-07. Retrieved 2018-08-13.
- "Apple seeks to position Metal as part of new 3D graphics standard for web". AppleInsider. Retrieved 2018-08-13.
- Claburn, Thomas (2017-02-08). "Web-standards-allergic Apple unveils WebGPU, a web graphics standard". Retrieved 2017-08-14.
- "WebGPU Prototype and Demos". WebKit. 2017-04-05. Retrieved 2019-01-10.
- Jackson, Dean (2017-02-16). "Welcome and Getting Started". public-gpu (Mailing list). Retrieved 2018-09-11.
- Jackson, Dean. "Add Apple's WebGPU proposal". Retrieved 2019-03-08.
- Malyshau, Dzmitry. "Prototyping a new 3D API for the Web". Retrieved 2016-12-16.
- Malyshau, Dzmitry (2017-03-21). "Defining the Web platform". Retrieved 2018-09-11.
- Malyshau, Dzmitry. "Mozilla's contribution: Obsidian API". Retrieved 2019-03-08.
- WebGPU Shading Language specification
- "Implementation Status". GitHub. gpuweb.
External links
- Official website
- WebGPU specification
- gpuweb on GitHub
- WebGPU API Proposal for Apple Webkit in 2017
- GPU on the Web Community Group at W3C