Intent to extend Origin Trial: WebGPU

105 views
Skip to first unread message

Corentin Wallez

unread,
Dec 20, 2022, 11:01:17 AM12/20/22
to blink-dev

Hey all,


Hopefully given that we intend to ship WebGPU this will be the last Origin Trial extension request. The Origin Trial was started in M95 and was extended until M109. We are asking for an extension until M114 to cover the releases until the tentative target for shipment in M113 (plus one release in case we slip).

This is clearly a long Origin Trial but we would still like to extend it because the burn-in risk is low (there as been basically 0 breaking changes in the last extension, and none planned at the moment) and there are multiple partners that would like to start experimenting with WebGPU in the wild to start collecting data and issues. Extending the Origin Trial would let them do that and kickstart their use of WebGPU once it is released.


Contact emails

cwa...@chromium.orgbcla...@google.comkai...@chromium.org

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 provides 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.



Blink component

Blink>WebGPU

Search tags

gpuwebgl

TAG review

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

TAG review status

Issues addressed

Risks



Interoperability and Compatibility

With positive signals (and at least WIP implementations) from all browsers and few unresolved issues in the spec repo, the compatibility risk is low and mostly if other implementers find bugs in the spec as they flesh out their WebGPU implementation.



Gecko: Positive (https://mozilla.github.io/standards-positions/#webgpu) Development is also ongoing, see: https://hg.mozilla.org/mozilla-central/file/tip/dom/webgpu

WebKit: In development (https://github.com/WebKit/WebKit/tree/main/Source/WebGPU/WebGPU) Standard position issue: https://github.com/WebKit/standards-positions/issues/107

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).

Other signals:

Activation

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



Security

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



WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?



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 easy 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

Origin trial may extend past the originally-planned M97, because of the change in release cadence.



Ongoing technical constraints

None



Debuggability

Warnings and errors are exposed via dev tools. Specialized tools can be built directly in JavaScript, integrated in applications or as devtools extensions.



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 on: - 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. (though they get software fallback) - Android because adding Android support is a lot of engineering that we're scheduling to happen after the release of WebGPU on desktop. - Non-ChromeOS Linux due to dependencies on other reworks of the graphics stack there. (though it will get software fallback) - 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. In the short-term developers are expected to feature detect whether WebGPU is supported by checking if `navigator.gpu` exists and if `navigator.gpu.requestAdapter` resolves with a non-null GPUAdapter. If WebGPU is not supported then falling back to WebGL or another experience is appropriate. Long-term developers should be able to expect that WebGPU is close to universally available (similar to WebGL 2 today).



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 last109
OriginTrial desktop first94


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

Some issues are still open for discussion on the WebGPU and WGSL specification. They will all be solved by the time we ship WebGPU although new issues can appear in the meantime: we definitely expect to have minor spec bugs after shipping WebGPU but the overwhelming majority of the spec should see no behavioral changes.

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
Intent to Experiment: https://groups.google.com/u/1/a/chromium.org/g/blink-dev/c/K4_egTNAvTs
Intent to Extend Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGdfWNMtD9aCpKFbC9HqHMaeSX_840ayvXcjFX2xMUt_MEN_XQ%40mail.gmail.com
Intent to Ship: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGdfWNOERFV9DFZERpsP2T75g%3DF%2BwFquV1Oxdiea%2BvP4kKg4cw%40mail.gmail.com

Yoav Weiss

unread,
Dec 28, 2022, 11:44:03 AM12/28/22
to Corentin Wallez, blink-dev
LGTM to extend till M114 inclusive

--
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/CAGdfWNOXrrDbMXARtTKzTWBFja_59K6dOVdSsf-0thD3cku05g%40mail.gmail.com.

Corentin Wallez

unread,
Jan 2, 2023, 11:39:29 AM1/2/23
to Yoav Weiss, blink-dev
Thank you!
Reply all
Reply to author
Forward
0 new messages