GPURenderPipeline:getBindGroupLayout() 方法
getBindGroupLayout()
是 GPURenderPipeline
接口的方法,它返回具有给定索引的管道的 GPUBindGroupLayout
对象(即,包含在源 GPUDevice.createRenderPipeline()
或 GPUDevice.createRenderPipelineAsync()
调用管道布局中的)。
如果 GPURenderPipeline
是使用 layout: "auto"
创建的,则此方法是检索管道生成的 GPUBindGroupLayout
的唯一方法。
语法
js
getBindGroupLayout(index)
参数
index
-
表示要返回的
GPUBindGroupLayout
索引的数字。
返回值
一个 GPUBindGroupLayout
对象实例。
验证
调用 getBindGroupLayout()
时必须满足以下条件,否则将生成 GPUValidationError
并返回一个无效的 GPUBindGroupLayout
对象
index
小于管道布局中使用的GPUBindGroupLayout
对象的数量。
示例
注意:您可以在WebGPU 示例中看到使用 getBindGroupLayout()
的完整工作示例。
js
// ...
// Create a render pipeline using layout: "auto" to automatically generate
// appropriate bind group layouts
const fullscreenQuadPipeline = device.createRenderPipeline({
layout: "auto",
vertex: {
module: device.createShaderModule({
code: fullscreenTexturedQuadWGSL,
}),
entryPoint: "vert_main",
},
fragment: {
module: device.createShaderModule({
code: fullscreenTexturedQuadWGSL,
}),
entryPoint: "frag_main",
targets: [
{
format: presentationFormat,
},
],
},
primitive: {
topology: "triangle-list",
},
});
// ...
// Create a bind group with the auto-generated layout from the render pipeline
const showResultBindGroup = device.createBindGroup({
layout: fullscreenQuadPipeline.getBindGroupLayout(0),
entries: [
{
binding: 0,
resource: sampler,
},
{
binding: 1,
resource: textures[1].createView(),
},
],
});
// ...
规范
规范 |
---|
WebGPU # dom-gpupipelinebase-getbindgrouplayout |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- The WebGPU API