The issue linked from the PR provides more context:
https://github.com/gpuweb/gpuweb/issues/5339. Essentially, it enables,
inside a WGSL shader, to take a texture/sampler variable and assign it into
a `let`. Basically provides an alternate name at the moment. In the future,
the bindless work will have methods which can return a texture or sampler
and we'd like to be able to store those into local variables.
So, this allows you to have have something like:
```
@group(0) @binding(0) var tex: texture_2d<f32>;
@fragment fn main() {
let a = tex;
var res: vec4f = textureLoad(a, vec2i(1i), 0);
}
```
With bindless it will become a bit more interesting (below is not
finalized, still in discussion API, but works as an example):
```
@fragment fn main() {
let a = getResource<texture_2d<f32>>(2);
```
removing the need to call `getResource` multiple times.
Not sure what you mean by going to be shipping this first? We've landed the
code in Chrome behind the enable-unsafe-webgpu flag. So, it will be
accessible from Chrome if the flag is enabled.
dan
On Wed, Jan 14, 2026 at 11:13 AM Alex Russell <[email protected]>
wrote:
> Dumb question from a non-WGSL developer: what does this enable? Why do we
> want it? There's no explainer and no example code in the linked PR:
>
> https://github.com/gpuweb/gpuweb/pull/5389/files
>
> Are we going to be shipping this first?
>
> On Wednesday, January 14, 2026 at 8:12:26 AM UTC-8 Vladimir Levin wrote:
>
>> LGTM2
>>
>> On Wednesday, January 14, 2026 at 8:51:23 AM UTC-5 Yoav Weiss wrote:
>>
>>> LGTM1
>>>
>>> On Tuesday, January 13, 2026 at 2:49:44 PM UTC+1 Chromestatus wrote:
>>>
>>>> *Contact emails*
>>>> [email protected]
>>>>
>>>> *Explainer*
>>>> *No information provided*
>>>>
>>>> *Specification*
>>>> https://github.com/gpuweb/gpuweb/pull/5389
>>>>
>>>> *Summary*
>>>> Add a language feature to WGSL, `texture_and_sampler_let` that adds the
>>>> ability to store texture and sampler objects into a let declaration in
>>>> WGSL.
>>>>
>>>> *Blink component*
>>>> Blink>WebGPU
>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EWebGPU%22>
>>>>
>>>> *Web Feature ID*
>>>> webgpu <https://webstatus.dev/features/webgpu>
>>>>
>>>> *Motivation*
>>>> To allow storing texture and samples in WGSL shaders into lets. This
>>>> allows creating local names for what are usually global objects.
>>>>
>>>> *Initial public proposal*
>>>> https://github.com/gpuweb/gpuweb/issues/5339
>>>>
>>>> *TAG review*
>>>> *No information provided*
>>>>
>>>> *TAG review status*
>>>> Pending
>>>>
>>>> *Risks*
>>>>
>>>>
>>>> *Interoperability and Compatibility*
>>>> This feature has been approved in W3C GPU for the Web WG meetings
>>>> including participants from Safari and Firefox. Meeting minutes:
>>>> https://docs.google.com/document/d/1kTmVO9okQZOotWtCNDzRaF-rPXgyIVJ-u5PEe7rnjQc/edit?tab=t.0#bookmark=id.u8bh2sfreh45
>>>>
>>>> *Gecko*: No signal Mozilla members have approved
>>>> https://github.com/gpuweb/gpuweb/pull/5389 and requested during weekly
>>>> standardization meetings that we postpone filing standard positions until
>>>> we reach Candidate Recommendation (CR) status in Q4.
>>>>
>>>> *WebKit*: Closed Without a Position (
>>>> 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?
>>>> *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
>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
>>>> 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. CTS:
>>>> https://github.com/gpuweb/cts/pull/4490
>>>>
>>>> *Flag name on about://flags*
>>>> *No information provided*
>>>>
>>>> *Finch feature name*
>>>> UnsafeWGSLFeatures
>>>>
>>>> *Rollout plan*
>>>> Will ship enabled for all users
>>>>
>>>> *Requires code in //chrome?*
>>>> False
>>>>
>>>> *Tracking bug*
>>>> https://crbug.com/459500757
>>>>
>>>> *Estimated milestones*
>>>> Shipping on desktop 146
>>>> Shipping on Android 146
>>>> Shipping on WebView 146
>>>>
>>>> *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/5102334940151808?gate=6582632798355456
>>>>
>>>> This intent message was generated by Chrome Platform Status
>>>> <https://chromestatus.com>.
>>>>
>>>
--
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 [email protected].
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMYH%3DOhXJoH-3jughDRWH139dUTc3PEwguw0%3DAKG2HgdHJr1fw%40mail.gmail.com.