v136 · webgpu

Unified Texture Demo

Before Chrome 136, a texture_external binding slot could only receive a GPUExternalTexture (video frame). Now it also accepts a plain GPUTextureView — one shader, one pipeline, one bind group layout for both source types. This demo runs a procedural texture through an effect shader using just a GPUTextureView in the external-texture slot.

WebGPU is not available in this browser. Requires Chrome 113+ with WebGPU enabled.

Effect gallery

Initialising WebGPU…
source GPUTexture

Procedural input texture

GPUTextureView → externalTexture slot

Shader output (Chrome 136+)

WGSL bind group layout

Loading…
The key change: The WGSL shader uses a standard texture_2d<f32> binding. Pre-136, video-pipeline code required a separate texture_external shader variant for video frames. Now the same GPUBindGroupLayout can accept either a GPUTextureView or a GPUExternalTexture in the same slot, eliminating the need for duplicate shader compilation for pipelines that mix static and video textures.