Intent to Ship: WebGPU on Android

1,087 views
Skip to first unread message

Brandon Jones

unread,
Oct 27, 2023, 4:21:01 PM10/27/23
to blink-dev

Contact emails

baj...@chromium.orgcwa...@chromium.org

Explainer

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

Specification

https://www.w3.org/TR/webgpu

Design docs


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

Summary

This Intent to Ship is specifically for enabling WebGPU by default on Android. WebGPU previously launched on Windows, MacOS, and ChromeOS in M113. See https://chromestatus.com/feature/6213121689518080 for details.

WebGPU has been available on Android behind a flag since M111, during which time we have gathered feedback from developers, partners, and Chrome's testing infrastructure to find and address issues on multiple mobile GPU architectures.

WebGPU 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 developed by the “GPU for the Web” W3C community group.


Blink component

Blink>WebGPU


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)

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

Web developers: Strongly positive

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?

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

Once enabled on Android, the only Blink platform where WebGPU will not be enabled by default yet is Linux.



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

Yes

The WebGPU Conformance Test Suite is being built at https://github.com/gpuweb/cts and can be integrated as a subdirectory of WPT. It is already integreated into the Chromium CI infrastructure.


DevTrial instructions

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

Flag name on chrome://flags

--enable-unsafe-webgpu

Finch feature name

WebGPUService

Requires code in //chrome?

False

Availability expectation

Feature will initially be enabled for Adreno and Mali GPUs (the majority of the mobile market) on Android 12+, with other hardware and OS versions added in the future as additional testing and bug fixes allow. More broadly while there is no timeline commitment from Firefox or Safari both browsers are known to be actively implementing WebGPU and are anticipated to ship once their implementations are sufficiently conformant.

Sample links


https://github.com/austinEng/webgpu-samples

Estimated milestones

Shipped on desktop113
OriginTrial desktop last114
OriginTrial desktop first94
Shipping on Android121
DevTrial on Android111


Anticipated spec changes

Discussion on the core WebGPU and WGSL specification has been minimal since the API was shipped on desktop, with most ongoing discussion centered around additional features that can be layered onto the API. While we are still open to minor spec bug fixes at this point the overwhelming majority of the spec should see no behavioral changes.

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5119617865613312

Links to previous Intent discussions

Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/dxqWTSvyhDg/m/1UDaFD17AQAJ

Chris Harrelson

unread,
Oct 27, 2023, 4:26:07 PM10/27/23
to Brandon Jones, blink-dev
LGTM1 - this is an easy one :)

--
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/CAEGwwi0ReGtfej_JbQPVHEbutrB%3DpDsEOdg9kfHTHYpyojkA-A%40mail.gmail.com.

Mike Taylor

unread,
Oct 27, 2023, 4:57:21 PM10/27/23
to Chris Harrelson, Brandon Jones, blink-dev

LGTM2 % requesting all of the review gates in the chromestatus entry.

Chris Harrelson

unread,
Oct 27, 2023, 5:04:46 PM10/27/23
to Mike Taylor, Brandon Jones, blink-dev
On Fri, Oct 27, 2023 at 1:57 PM Mike Taylor <mike...@chromium.org> wrote:

LGTM2 % requesting all of the review gates in the chromestatus entry.

Ah yes - please do start those reviews. Likely you can mark them as N/A because this is just shipping an existing API on a new platform.
 

Brandon Jones

unread,
Oct 27, 2023, 5:12:36 PM10/27/23
to Chris Harrelson, Mike Taylor, blink-dev
Thanks! It was unclear what the procedure was here since this isn't a new feature, just enabling it on a new platform. I'll make sure they are updated appropriately.

--Brandon

Yoav Weiss

unread,
Oct 30, 2023, 3:12:49 AM10/30/23
to Brandon Jones, Chris Harrelson, Mike Taylor, blink-dev
Reply all
Reply to author
Forward
0 new messages