Intent to Ship: WebGPU default entry points to shader modules

188 views
Skip to first unread message

François Beaufort

unread,
Nov 23, 2023, 10:34:32 AM11/23/23
to blink-dev

Contact emails

fbea...@google.com, cwa...@google.com


Explainer

https://github.com/gpuweb/gpuweb/issues/4342


Specification

https://gpuweb.github.io/gpuweb/#abstract-opdef-validating-gpuprogrammablestage

https://github.com/gpuweb/gpuweb/pull/4387


Summary

WebGPU now allows developers to omit entry points to shader modules when creating a pipeline, improving ergonomics. If no default entry point is found, a GPUValidationError will be triggered as usual.


Blink component

Blink>WebGPU


TAG review

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


TAG review status

A TAG review was not deemed necessary for this minor addition to the WebGPU spec, as it adheres to established conventions.


Risks



Interoperability and Compatibility

Default entry points to shader modules have not yet been implemented in any browser, but have been approved by the GPU for the Web Community Group, with representatives from Chrome, Firefox, and Safari. See https://github.com/gpuweb/gpuweb/wiki/GPU-Web-2023-11-08#default-entrypoints-to-shader-modules-4342-corentin-is-very-excited-about-this-tiny-addition


Gecko: Positive (https://github.com/mozilla/standards-positions/issues/931)


WebKit: Positive (https://github.com/WebKit/standards-positions/issues/284)


Web developers: Positive. https://github.com/gpuweb/gpuweb/issues/4342

Other signals:


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 at the moment, WebGPU currently does not ship on Android WebView.



Debuggability

No DevTools changes are required.


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

No

All platforms will eventually have support. Will immediately be available on Android, ChromeOS, Mac, and Windows, since those platforms already support WebGPU. Linux is planned to have WebGPU support in the future, so this feature will become available when WebGPU does.


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

Work-in-progress.

WebGPU/WGSL have a conformance test suite (https://github.com/gpuweb/cts) that is regularly pulled into Chromium and part of the testing of Dawn/Tint in Chromium.


Flag name on chrome://flags

None


Finch feature name

None


Non-finch justification

None


Requires code in //chrome?

False


Tracking bug

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


Availability expectation

Feature is available only in Chromium browsers for the near future, on the order of months. Other browsers intend to ship WebGPU support, but don't have specified timelines.


Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open source repository and its open-source dependencies to function?

No


Estimated milestones

Shipping on desktop

121


Shipping on Android

121


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

None


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5102870756327424


This intent message was generated by Chrome Platform Status.



Rick Byers

unread,
Nov 23, 2023, 7:47:04 PM11/23/23
to François Beaufort, blink-dev
Seems trivial to me, just one little question:

So does this addition have coverage in the WebGPU CTS? I went looking through the CTS and WebGPU spec repo to try to understand the typical working mode. I see that the test suite is considered normative and any mismatch between the CTS and specs are bugs, so does that mean that spec changes are expected to come along with test changes too (as is the practice in many other groups now)?

Regardless, chromium's policy is that we expect conformance test coverage (WPT or otherwise) for every I2S or an explanation of why such test coverage isn't currently practical.

--
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/CAPpwU5KPXpmcrMCz9keGzv88zFEeX_rgujaN63mr2aHe2nydFA%40mail.gmail.com.

François Beaufort

unread,
Nov 24, 2023, 8:32:58 AM11/24/23
to Rick Byers, blink-dev

I've just sent a CTS PR at https://github.com/gpuweb/cts/pull/3190 for this specific feature.
  

Rick Byers

unread,
Nov 24, 2023, 8:53:53 AM11/24/23
to François Beaufort, blink-dev
Thanks, good enough for me! LGTM1

Mike Taylor

unread,
Nov 25, 2023, 1:08:21 PM11/25/23
to Rick Byers, François Beaufort, blink-dev

Yoav Weiss

unread,
Nov 27, 2023, 7:32:40 AM11/27/23
to blink-dev, Mike Taylor, blink-dev, Rick Byers, fbea...@google.com
LGTM3

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.
Reply all
Reply to author
Forward
0 new messages