bindingsFor method
The bind group layouts pipeline's stage pair needs, made once.
Keyed on the pair's name rather than on the pipeline object, because the layouts come out of the two stages' reflection and nothing else: two pipelines over one pair with different vertex layouts are two pipelines and one set of bind group layouts.
Implementation
WebGpuBindingLayouts bindingsFor(WebGpuPipeline pipeline) =>
_bindingLayouts[pipeline.name] ??= guard(
'the bind group layouts of ${pipeline.name}',
() => WebGpuBindingLayouts.of(gpuDevice, pipeline),
);