Intent to Ship: WebGPU: read-write storage textures

381 views
Skip to first unread message

Corentin Wallez

unread,
Jan 5, 2024, 8:19:28 AMJan 5
to blink-dev

Contact emails

cwa...@google.com

Explainer

None

Specification

https://gpuweb.github.io/gpuweb/#dom-gpustoragetextureaccess-read-write

Summary

Functionality added to the WebGPU/WGSL spec after its first shipment in a browser. Adds support for (read-only and) read-write storage textures which allow more general access to texture memory for GPU computation and can unlock more advanced graphical algorithms. This feature has been request by developers very often.



Blink component

Blink>WebGPU

TAG review

None

TAG review status

Not applicable

Risks



Interoperability and Compatibility

Read-write storage textures 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.



Gecko: No signal (https://github.com/mozilla/standards-positions/issues/948)

WebKit: Positive (https://github.com/WebKit/standards-positions/issues/294#issuecomment-1877411933) Note that this is a blanket approval from Safari for additions to the v1 WebGPU/WGSL spec.

Web developers: Strongly positive One of the most requested additional features for WebGPU.

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

None



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, 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?

Yes

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. Note that tests are still being written, but the feature will not be launched until it is fully tested.



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=1972

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

No milestones specified



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/6469283075063808

This intent message was generated by Chrome Platform Status.

Yoav Weiss

unread,
Jan 8, 2024, 5:01:27 AMJan 8
to Corentin Wallez, blink-dev


On Fri, Jan 5, 2024, 14:19 Corentin Wallez <cwa...@chromium.org> wrote:

Is there a way for developers to feature detect support for this extra value?

--
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/CAGdfWNOqjLmKdMXiOK3xxDQ3j5Tm%3DdCo5i2jOGC4ULyY4fQ24w%40mail.gmail.com.

François Beaufort

unread,
Jan 8, 2024, 5:04:44 AMJan 8
to Yoav Weiss, Corentin Wallez, blink-dev
On Mon, Jan 8, 2024 at 11:01 AM Yoav Weiss <yoav...@chromium.org> wrote:


On Fri, Jan 5, 2024, 14:19 Corentin Wallez <cwa...@chromium.org> wrote:

Is there a way for developers to feature detect support for this extra value?


Yes. All they have to do is check wgslLanguageFeatures as below.

if (navigator.gpu.wgslLanguageFeatures.has("readonly_and_readwrite_storage_textures")) {
  // Read-only and read-write storage textures are supported!

Chris Harrelson

unread,
Jan 17, 2024, 7:49:58 PMJan 17
to François Beaufort, Yoav Weiss, Corentin Wallez, blink-dev
LGTM1 (as noted in the other intent, tests are needed but we aren't blocking approval on them in this case)


Mike Taylor

unread,
Jan 17, 2024, 8:26:24 PMJan 17
to Chris Harrelson, François Beaufort, Yoav Weiss, Corentin Wallez, blink-dev

slightlyoff via Chromestatus

unread,
Jan 19, 2024, 4:52:18 PMJan 19
to blin...@chromium.org
LGTM3, assuming tests land
Reply all
Reply to author
Forward
0 new messages