Intent to extend Origin Trial: WebGPU

867 views
Skip to first unread message

Corentin Wallez

unread,
Jul 18, 2022, 10:54:42 AM7/18/22
to blink-dev

Hey Blink API owners,


The origin trial for WebGPU was started in M94 and was extended multiple times until M105. We are asking to extend for 4 additional releases to M109 so that we can keep experimenting and gathering feedback from developers. Note however that this will make the WebGPU Origin Trial past the 12 milestone mark so it will need special approval. We are ready to pause the OT for some time (2 weeks was mentioned) to prevent the risk of burn-in.


Particularly important pieces of feedback that we are currently investigating are:
  • WGSL has a novel "uniformity analysis" type system that is taking some time to bake. The group has addressed multiple pieces of feedback from developers and continued experimentation will help make sure developers can use WGSL even with these added constraints.
  • The WebGPU API recently gained an API for the browser to optionally surface information about the GPU being used (vendor / architecture). It has been implemented in Chromium only recently and we are seeking feedback from developers.
  • We are continuing experimentation of WebGPU-based video processing. The optimizations require quite some complex work on the GPU stack and there are still gains to be expected so we'd like to let some developers test in the wild.
A signal of note is that the group is already planning the transition to Candidate Recommendation for the WebGPU API and WGSL specifications.

Contact emails


Explainer

https://gpuweb.github.io/gpuweb/explainer/

Specification

https://gpuweb.github.io/gpuweb/

Design docs


https://gpuweb.github.io/gpuweb/
https://gpuweb.github.io/gpuweb/wgsl/
https://gpuweb.github.io/gpuweb/explainer/

Summary

The WebGPU API is the successor to the WebGL and WebGL 2 graphics APIs for the Web. It will provide modern features such as “GPU compute” as well as lower overhead access to GPU hardware and better, more predictable performance. WebGPU is being developed by the “GPU for the Web” W3C community group.


The origin trial for WebGPU was started in M94 and was extended multiple times until M105. We are asking to extend for 4 additional releases to M109 so that we can keep experimenting and gathering feedback from developers. Note however that this will make the WebGPU Origin Trial past the 12 milestone mark so it will need special approval. We are ready to pause the OT for some time (2 weeks was mentioned) to prevent the risk of burn-in.


Particularly important pieces of feedback that we are currently investigating are:
  • WGSL has a novel "uniformity analysis" type system that is taking some time to bake. The group has addressed multiple pieces of feedback from developers and continued experimentation will help make sure developers can use WGSL even with these added constraints.
  • The WebGPU API recently gained an API for the browser to optionally surface information about the GPU being used (vendor / architecture). It has been implemented in Chromium only recently and we are seeking feedback from developers.
  • We are continuing experimentation of WebGPU-based video processing. The optimizations require quite some complex work on the GPU stack and there are still gains to be expected so we'd like to let some developers test in the wild.
A signal of note is that the group is already planning the transition to Candidate Recommendation for the WebGPU API and WGSL specifications.

Blink component

Blink>WebGPU

Search tags

gpuwebgl

TAG review

https://github.com/w3ctag/design-reviews/issues/626

TAG review status

Complete (with LGTM)!

Risks



Interoperability and Compatibility

With positive signals (and at least WIP implementations) from all browsers, the biggest interoperability risk is the surface of the API which is quite large.


Gecko: In development (https://hg.mozilla.org/mozilla-central/file/tip/dom/webgpu)

WebKit: In development (
https://github.com/WebKit/WebKit/tree/main/Source/WebGPU/WebGPU)

Web developers: Strongly positive (https://doc.babylonjs.com/extensions/webgpu) Significant interest and positive feedback from the many early adopters (Babylon.js, Earth, TF.js, sokol-gfx, and many many others).

Activation

WebGPU is not polyfillable on existing APIs and requires hardware support on the system. (software fallback is not enabled by default yet).


Security

See detailed security explainer: https://gpuweb.github.io/gpuweb/#malicious-use



Goals for experimentation

Allow developers to use WebGPU and provide feedback on the API or the shading language. We expect feedback about ergonomics, ease of use and ease of porting existing content to WebGPU, and missing features. As well as many bug reports :) Also help partners evaluate the performance of WebGPU in the wild to figure out areas of the implementation to optimize before launch.



Reason this experiment is being extended

The origin trial for WebGPU was started in M94 and was extended multiple times until M105. We are asking to extend for 4 additional releases to M109 so that we can keep experimenting and gathering feedback from developers. Note however that this will make the WebGPU Origin Trial past the 12 milestone mark so it will need special approval. We are ready to pause the OT for some time (2 weeks was mentioned) to prevent the risk of burn-in.


Particularly important pieces of feedback that we are currently investigating are:
  • WGSL has a novel "uniformity analysis" type system that is taking some time to bake. The group has addressed multiple pieces of feedback from developers and continued experimentation will help make sure developers can use WGSL even with these added constraints.
  • The WebGPU API recently gained an API for the browser to optionally surface information about the GPU being used (vendor / architecture). It has been implemented in Chromium only recently and we are seeking feedback from developers.
  • We are continuing experimentation of WebGPU-based video processing. The optimizations require quite some complex work on the GPU stack and there are still gains to be expected so we'd like to let some developers test in the wild.
A signal of note is that the group is already planning the transition to Candidate Recommendation for the WebGPU API and WGSL specifications.

Ongoing technical constraints

None



Debuggability

Warnings and errors are exposed via dev tools. Specialized tools for debugging are TBD.



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

No

This feature will not be available in Origin Trial on: - Android because adding Android support is a lot of engineering that we're scheduling to happen between the Origin Trial and the shipment of WebGPU. - Windows 7 and 8 since they don't have D3D12. Support will be extended to these versions of Windows after the first version of WebGPU is shipped. - Other devices that don't support D3D12/Metal/Vulkan or don't have a GPU with good enough minimum specifications.(maybe) The goal is that WebGPU will eventually be supported in hardware on the vast majority of systems on all Blink OSes and have software fallback on the others.


Is this feature fully tested by web-platform-tests?

Yes

DevTrial instructions

https://github.com/gpuweb/gpuweb/wiki/Implementation-Status#chromium-chrome-edge-etc

Flag name

--enable-unsafe-webgpu

Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1156646

Launch bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1156661

Estimated milestones

OriginTrial desktop last105
OriginTrial desktop first94


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/6213121689518080

Links to previous Intent discussions

Intent to prototype: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/dxqWTSvyhDg/1UDaFD17AQAJ
Intent to Experiment: https://groups.google.com/u/1/a/chromium.org/g/blink-dev/c/K4_egTNAvTs

Ken Russell

unread,
Jul 18, 2022, 5:50:51 PM7/18/22
to Corentin Wallez, blink-dev
Hi Blink developers and owners,

Hoping for positive feedback from the Blink API OWNERS. The specification discussions among browser vendors are converging well. This request for Origin Trial extension - the last one our team plans to make - is needed at this critical juncture to allow the most developers to provide feedback on some crucial API and semantic changes.

Thanks,

-Ken



--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGdfWNP-8mrUnw0pbYZVv1bLbxj1-n%3Dy-UO9niDGCa1dYUGACw%40mail.gmail.com.

Yoav Weiss

unread,
Jul 19, 2022, 1:20:14 PM7/19/22
to Ken Russell, Corentin Wallez, blink-dev
Since this goes beyond the 12 milestones timeline, this requires 3 LGTMs.

LGTM1 to experiment till M105-M109, with a 2 weeks break in the OT to reduce burn-in risk.

Mike Taylor

unread,
Jul 19, 2022, 1:25:36 PM7/19/22
to Yoav Weiss, Ken Russell, Corentin Wallez, blink-dev
LGTM2. I think this meets the bar of "substantial progress".

Daniel Bratell

unread,
Jul 20, 2022, 7:41:08 AM7/20/22
to Mike Taylor, Yoav Weiss, Ken Russell, Corentin Wallez, blink-dev

Corentin Wallez

unread,
Jul 20, 2022, 7:50:41 AM7/20/22
to Daniel Bratell, Mike Taylor, Yoav Weiss, Ken Russell, blink-dev
Thank you everyone! Is there a usual schedule for the pause in the OT, for example making it start when M106 hits stable?

Yoav Weiss

unread,
Jul 20, 2022, 7:58:45 AM7/20/22
to Corentin Wallez, Daniel Bratell, Mike Taylor, Ken Russell, blink-dev
That's up to you. I don't think there's any particular convention.

Corentin Wallez

unread,
Jul 20, 2022, 8:03:10 AM7/20/22
to Yoav Weiss, Daniel Bratell, Mike Taylor, Ken Russell, blink-dev
Sounds good, we'll go with a pause of two weeks when M106 hits stable then.

Alex Russell

unread,
Jul 28, 2022, 6:44:01 PM7/28/22
to blink-dev, Corentin Wallez, Daniel Bratell, Mike Taylor, Kenneth Russell, blink-dev, Yoav Weiss
Hey folks,

I'm fine with the OT extension based on the rationale and limits others have set in this thread, but would like to understand why we aren't shipping an MVP today and running the rest of these enhancements as separate OTs/launches to fill in gaps as they stabilise. WebGPU is already late, and it will be healthier for the team, the ecosystem, and the standardisation process for a committed, stabilised subset to exist in the wild after such an extensive feedback period.

What's keeping that from happening today or in the next release or two?

Best Regards,

Alex

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.


--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.

Ken Russell

unread,
Jul 28, 2022, 9:52:59 PM7/28/22
to Alex Russell, blink-dev, Corentin Wallez, Daniel Bratell, Mike Taylor, Yoav Weiss
Not to speak for Corentin, but this last OT extension is needed to get to that MVP. The API and shading language have required final polishing - in some ways incompatibly - to create that core around which future enhancements can be made in a feature-detectable fashion. It's not a fair characterization to call WebGPU "late" - this is the duration which has been necessary to design a new web-facing explicit graphics API efficiently hostable on top of D3D12, Metal and Vulkan (and, soon, D3D11 and OpenGL ES). It's almost done, and this achievement should be celebrated.

For historical perspective, 10+ years ago browsers attempted to ship an MVP for WebGL ("experimental-webgl") before the official 1.0 version of the spec. While the API was being shipped in multiple browsers, some methods had to change incompatibly and non-feature-detectably based on user feedback. There were enough web sites using WebGL at the time that this breakage was painful; we had to individually reach out to many site authors to ask them to update their code. In hindsight, we should have kept it behind a feature flag and/or OT for a bit longer, to let it bake.

-Ken



To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.


--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
Reply all
Reply to author
Forward
0 new messages