The GPUComputePipeline
interface of the WebGPU API represents a pipeline that controls the compute shader stage and can be used in a GPUComputePassEncoder
.
A GPUComputePipeline
object instance can be created using the GPUDevice.createComputePipeline()
or GPUDevice.createComputePipelineAsync()
methods.
Instance properties
label
Experimental
-
A string providing a label that can be used to identify the object, for example in GPUError
messages or console warnings.
Instance methods
getBindGroupLayout()
Experimental
-
Returns the pipeline's GPUBindGroupLayout
object with the given index (i.e. included in the originating GPUDevice.createComputePipeline()
or GPUDevice.createComputePipelineAsync()
call's pipeline layout).
Examples
Basic example
Our basic compute demo shows a process of:
const bindGroupLayout = device.createBindGroupLayout({
entries: [
{
binding: 0,
visibility: GPUShaderStage.COMPUTE,
buffer: {
type: "storage",
},
},
],
});
const computePipeline = device.createComputePipeline({
layout: device.createPipelineLayout({
bindGroupLayouts: [bindGroupLayout],
}),
compute: {
module: shaderModule,
entryPoint: "main",
},
});
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 |
GPUComputePipeline |
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 |
getBindGroupLayout |
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 |
label |
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