GPUComputePipeline:getBindGroupLayout() 方法
getBindGroupLayout()
方法是 GPUComputePipeline
接口的方法,它返回管道给定索引的 GPUBindGroupLayout
对象(即包含在原始 GPUDevice.createComputePipeline()
或 GPUDevice.createComputePipelineAsync()
调用的管道布局中)。
如果 GPUComputePipeline
是使用 layout: "auto"
创建的,则此方法是检索管道生成的 GPUBindGroupLayout
的唯一方法。
语法
js
getBindGroupLayout(index)
参数
index
-
表示要返回的
GPUBindGroupLayout
的索引的数字。
返回值
一个 GPUBindGroupLayout
对象实例。
验证
调用 getBindGroupLayout()
时,必须满足以下条件,否则将生成一个 GPUValidationError
并返回一个无效的 GPUBindGroupLayout
对象
index
小于管道布局中使用的GPUBindGroupLayout
对象的数量。
示例
注意:您可以在 WebGPU 示例 中看到使用 getBindGroupLayout()
的完整工作示例。
js
// ...
// 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 },
},
],
});
// ...
规范
规范 |
---|
WebGPU # dom-gpupipelinebase-getbindgrouplayout |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- The WebGPU API