v136 · miscellaneous

WebGPU: GPUTextureView for externalTexture binding

Functionality added to the WebGPU spec after its first shipment in a browser. A GPUTextureView is now allowed to be used for an externalTexture binding when creating a GPUBindGroup.

concepts

  1. External texture view

    External textures (video frames) accept regular GPUTextureView bindings.

  2. Intermediate buffer pipeline

    The video-effects use case: one WGSL shader and one bind-group layout used at every stage, because the external-texture slot now also accepts a plain texture view.

  3. Binding Compatibility Table

    Every slot type × every source crossed in one table, with the new (v136) cells highlighted. A live "probe" button verifies your build accepts a GPUTextureView in a texture_external slot.

  4. Unified Texture Demo

    Creates a procedural texture, wraps it as a GPUTextureView, binds it to a slot that previously required a GPUExternalTexture, and runs it through five live WGSL effects (passthrough, invert, grayscale, sepia, hue-shift) — all without a separate shader variant.

why it shipped

Some developers using WebGPU for video effects pipelines have proposed allowing a compatible GPUTextureView (2D, single subresource) to be used in place of a GPUExternalTexture binding. This would simplify their shader logic, which currently needs to handle both GPUExternalTexture (for source video) and GPUTextureView (for intermediate processing) and reduce the need to dynamically compile shaders depending on where the texture comes from.

references