Intent to Ship: WebGPU: Texture component swizzle

48 views
Skip to first unread message

François Beaufort

unread,
Oct 14, 2025, 3:03:56 PM (yesterday) Oct 14
to blink-dev
Contact emails
fbea...@google.com

Explainer
https://github.com/gpuweb/gpuweb/blob/main/proposals/texture-component-swizzle.md

Specification
https://gpuweb.github.io/gpuweb/#dom-gpufeaturename-texture-component-swizzle

Summary
Functionality added to the WebGPU spec after its first shipment in a browser.

Allows GPUTextureViews to rearrange or replace the color components from texture's red/green/blue/alpha channels when accessed by a shader.

Blink component
Blink>WebGPU

Web Feature ID
webgpu

TAG review
None

TAG review status
Pending

Risks


Interoperability and Compatibility
This feature has not yet been implemented yet in any browser. It has been approved by the GPU for the Web Community Group, with representatives from Chrome, Firefox, and Safari. See minutes at https://github.com/gpuweb/gpuweb/wiki/GPU-Web-2025%E2%80%9010-08#should-texture-swizzle-move-usage-restrictions-from-createview-to-createbindgroupbeginrenderpass-5298https://github.com/gpuweb/gpuweb/wiki/GPU-Web-2025%E2%80%9010-01#should-texture-swizzle-move-usage-restrictions-from-createview-to-createbindgroupbeginrenderpass-5298, and https://github.com/gpuweb/gpuweb/wiki/GPU-Web-2024-09-F2F#finalize-texture-swizzle

Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1205#issuecomment-3312534193)

WebKit: Positive (https://github.com/WebKit/standards-positions/issues/294#issuecomment-1877411933)

Web developers: No signals

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


Debuggability
None

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
All platforms will eventually have support. Will immediately be available on Android, Android WebView, 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. 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. All the tests about this feature in WebGPU CTS can be found at https://github.com/gpuweb/cts/pull/4427

Flag name on about://flags
Enable Unsafe WebGPU

Finch feature name
WebGPUTextureComponentSwizzle

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

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

Estimated milestones
DevTrial on desktop142
DevTrial on Android142


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/5110223547269120?gate=5339076953767936

This intent message was generated by Chrome Platform Status.

Daniel Bratell

unread,
9:47 AM (7 hours ago) 9:47 AM
to François Beaufort, blink-dev

Judging from what you write, the explainer must be slightly dated, but as it is, it clearly states that this must not ship. Someone (TM) should update that text.

The signals from other vendors become a bit unclear when everything "post initial release" is bundled together. The positive signal from WebKit is a year old and I assume this particular feature did not exist back then. 

Otherwise it seems like a small straightforward change.

/Daniel

--
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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5Le-7vc-kBELpvdCjCorab%2Bh0%3D6JMe9f9W2sHUhE%3De3Zw%40mail.gmail.com.

François Beaufort

unread,
10:01 AM (7 hours ago) 10:01 AM
to Daniel Bratell, blink-dev
On Wed, Oct 15, 2025 at 3:46 PM Daniel Bratell <brat...@gmail.com> wrote:

Judging from what you write, the explainer must be slightly dated, but as it is, it clearly states that this must not ship. Someone (TM) should update that text.


Thanks for flagging this issue. Someone (a nice person) has just sent a PR: https://github.com/gpuweb/gpuweb/pull/5388

The signals from other vendors become a bit unclear when everything "post initial release" is bundled together. The positive signal from WebKit is a year old and I assume this particular feature did not exist back then. 


The Webkit representative who published this signal has also approved the feature PR: https://github.com/gpuweb/gpuweb/pull/5361#pullrequestreview-3325251580
Note that meeting notes linked show that both Mozilla and Safari agreed on this feature.
 

Otherwise it seems like a small straightforward change.


Agree ;)
 

Alex Russell

unread,
11:14 AM (6 hours ago) 11:14 AM
to blink-dev, fbea...@google.com, blink-dev, Daniel Bratell
LGTM1

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.

Chris Harrelson

unread,
11:15 AM (6 hours ago) 11:15 AM
to François Beaufort, Daniel Bratell, blink-dev

Daniel Bratell

unread,
11:16 AM (6 hours ago) 11:16 AM
to Chris Harrelson, François Beaufort, blink-dev

LGTM3

/Daniel

Reply all
Reply to author
Forward
0 new messages