files/en-us/web/api/gpucomputepipeline/getbindgrouplayout/index.md
{{APIRef("WebGPU API")}}{{SecureContext_Header}}{{AvailableInWorkers}}
The getBindGroupLayout() method of the
{{domxref("GPUComputePipeline")}} interface returns the pipeline's {{domxref("GPUBindGroupLayout")}} object with the given index (i.e., included in the originating {{domxref("GPUDevice.createComputePipeline()")}} or {{domxref("GPUDevice.createComputePipelineAsync()")}} call's pipeline layout).
If the {{domxref("GPUComputePipeline")}} was created with layout: "auto", this method is the only way to retrieve the {{domxref("GPUBindGroupLayout")}}s generated by the pipeline.
getBindGroupLayout(index)
index
A {{domxref("GPUBindGroupLayout")}} object instance.
The following criteria must be met when calling getBindGroupLayout(), otherwise a {{domxref("GPUValidationError")}} is generated and an invalid {{domxref("GPUBindGroupLayout")}} object is returned:
index is less than the number of {{domxref("GPUBindGroupLayout")}} objects used in the pipeline layout.[!NOTE] You can see complete working examples with
getBindGroupLayout()in action in the WebGPU samples.
// …
// Create a compute pipeline using layout: "auto" to automatically generate
// appropriate bind group layouts
const computePipeline = device.createComputePipeline({
layout: "auto",
compute: {
module: shaderModule,
entryPoint: "main",
},
});
// Create a bind group with the auto-generated layout from the compute pipeline
const computeBindGroup = device.createBindGroup({
layout: computePipeline.getBindGroupLayout(0),
entries: [
{
binding: 0,
resource: { buffer: storageBuffer },
},
],
});
// …
{{Specifications}}
{{Compat}}