GPUDevice: createPipelineLayout() method
The createPipelineLayout()
method of the GPUDevice
interface creates a GPUPipelineLayout
that defines the GPUBindGroupLayout
s used by a pipeline. GPUBindGroup
s used with the pipeline during command encoding must have compatible GPUBindGroupLayout
s.
Syntax
createPipelineLayout(descriptor)
Parameters
-
descriptor
-
An object containing the following properties:
-
bindGroupLayouts
-
An array of GPUBindGroupLayout
objects (which are in turn created via calls to GPUDevice.createBindGroupLayout()
). Each one corresponds to a @group
attribute in the shader code contained in the GPUShaderModule
used in a related pipeline.
label
Optional
-
A string providing a label that can be used to identify the object, for example in GPUError
messages or console warnings.
Return value
A GPUPipelineLayout
object instance.
Validation
The following criteria must be met when calling createPipelineLayout()
, otherwise a GPUValidationError
is generated and an invalid GPUPipelineLayout
object is returned:
Examples
Multiple bind group layouts, bind group, and pipeline layout
The following snippet:
const bindGroupLayout = device.createBindGroupLayout({
entries: [
{
binding: 0,
visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,
buffer: {},
},
{
binding: 1,
visibility: GPUShaderStage.FRAGMENT,
texture: {},
},
{
binding: 2,
visibility: GPUShaderStage.FRAGMENT,
sampler: {},
},
],
});
const pipelineLayout = device.createPipelineLayout({
bindGroupLayouts: [bindGroupLayout],
});
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
createPipelineLayout |
113Currently supported on ChromeOS, macOS, and Windows only.
|
113Currently supported on ChromeOS, macOS, and Windows only.
|
previewCurrently supported on Linux and Windows only.
|
No |
99Currently supported on ChromeOS, macOS, and Windows only.
|
No |
No |
No |
No |
No |
No |
No |
See also