Intent to Ship: WebGPU: Immediates

7 views
Skip to first unread message

Chromestatus

unread,
4:24 AM (1 hour ago) 4:24 AM
to blin...@chromium.org, Rafael....@microsoft.com, cwa...@google.com, kai...@google.com, y...@microsoft.com, shao...@microsoft.com
Contact emails
shao...@microsoft.com

Explainer
https://github.com/gpuweb/gpuweb/blob/main/proposals/immediate-data.md

Specification
https://github.com/gpuweb/gpuweb/pull/5423

Summary
Functionality added to the WebGPU spec after its first shipment in a browser. Adds a new immediate address space in WGSL and a setImmediateData() method on render pass, compute pass, and render bundle encoders that allows passing small amounts of frequently-updated data directly to shaders without creating GPU buffer objects or bind groups. This is particularly useful for applications that need to update per-draw parameters such as object indices, material indices, or transformation matrices every draw call, enabling significant performance improvements by avoiding buffer and bind group management overhead.

Blink component
Blink>WebGPU

Web Feature ID
webgpu

Motivation
This is particularly useful for applications that need to update per-draw parameters such as object indices, material indices, or transformation matrices every draw call, enabling significant performance improvements by avoiding buffer and bind group management overhead

Initial public proposal
https://github.com/gpuweb/gpuweb/pull/5423

TAG review
No information provided

TAG review status
Pending

Goals for experimentation
None

Risks


Interoperability and Compatibility
This feature has been approved in W3C GPU for the Web WG meetings including participants from WebKit and Firefox: https://github.com/gpuweb/gpuweb/pull/5423

Gecko: Positive (https://github.com/gpuweb/gpuweb/pull/5423#pullrequestreview-42388072000) Approved related WebGPU spec PR.

WebKit: Positive (https://github.com/gpuweb/gpuweb/pull/5423#issuecomment-3499601340) (Link above is to near-final review.) Specification approval constitutes a positive signal, per https://github.com/WebKit/standards-positions/issues/294#issuecomment-1877411933

Web developers: Positive https://github.com/gpuweb/gpuweb/issues/75#issuecomment-1092445344

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?

No information provided


Debuggability
No information provided

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, Android WebView, ChromeOS, Mac, and Windows, where hardware support is available. 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. While the CTS can be embedded in WPT, the WebGPU team opted to keep it separate in Chromium testing to use a customized harness for robustness and performance. https://github.com/gpuweb/cts/pulls?q=is%3Apr+is%3Aclosed+immediates

Flag name on about://flags
No information provided

Finch feature name
UnsafeFeatures

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/366291600

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

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

No information provided

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5199437611794432?gate=6420569794936832

This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages