GPUComputePipeline:getBindGroupLayout() 方法

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

安全上下文:此功能仅在 安全上下文 (HTTPS) 中可用,在某些或所有 支持的浏览器 中可用。

getBindGroupLayout() 方法是 GPUComputePipeline 接口的方法,它返回管道给定索引的 GPUBindGroupLayout 对象(即包含在原始 GPUDevice.createComputePipeline()GPUDevice.createComputePipelineAsync() 调用的管道布局中)。

如果 GPUComputePipeline 是使用 layout: "auto" 创建的,则此方法是检索管道生成的 GPUBindGroupLayout 的唯一方法。

语法

js
getBindGroupLayout(index)

参数

index

表示要返回的 GPUBindGroupLayout 的索引的数字。

返回值

一个 GPUBindGroupLayout 对象实例。

验证

调用 getBindGroupLayout() 时,必须满足以下条件,否则将生成一个 GPUValidationError 并返回一个无效的 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 的浏览器中加载。

另请参阅