用途:在 WebGPU 中创建绑定组布局(GPUBindGroupLayout)与绑定组(GPUBindGroup),把 uniform、storage buffer、纹理、采样器接入 WGSL 的 @group/@binding 槽位,避免触发校验错误。基线为 WebGPU 1.0-stable:Chrome 113+、Safari 26+、Firefox 141+。
主要能力:device.createBindGroupLayout({ label?, entries }) 定义资源形状;device.createBindGroup({ label?, layout, entries }) 绑定具体资源。每个布局条目含 binding(对应 WGSL @binding(n))、visibility(GPUShaderStage 位掩码)以及恰好一个资源布局对象。资料给出 buffer(uniform/storage/read-only-storage)、sampler(filtering/comparison)、texture(float/depth)、storageTexture、externalTexture 与 WGSL 声明的对应表,以及默认值(如 buffer.type 默认 uniform、storageTexture.access 默认 write-only、viewDimension 默认 2d)。
必要用法:布局、绑定组与 WGSL 的 binding 编号必须一致,setBindGroup 的索引须匹配 @group(n);visibility 必须覆盖所有读取该绑定的着色器阶段;每个条目只能有一个资源布局对象;buffer 资源须用 GPUBufferBinding 对象 { buffer, offset?, size? } 而非裸 GPUBuffer;动态偏移须设 hasDynamicOffset: true,且偏移为 256 的倍数(结构体步长需补齐到 256);跨管线复用须用显式 GPUPipelineLayout,不能复用 getBindGroupLayout 的自动布局。
适用场景:渲染与计算管线中组织相机、灯光、粒子、阴影贴图、视频帧等资源绑定。
限制:storageTexture 不支持 cube 视图维度;动态偏移对齐与 uniform 结构体填充细节见 webgpu-core-memory-model;缓冲区、纹理、采样器与渲染管线的创建分别见相关技能。资料未提供收费、价格或平台信息。