GPUComputePipeline
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
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
Instance methods
getBindGroupLayout()
Experimental-
Returns the pipeline's
GPUBindGroupLayout
object with the given index (i.e. included in the originatingGPUDevice.createComputePipeline()
orGPUDevice.createComputePipelineAsync()
call's pipeline layout).
Examples
Note: The WebGPU samples feature many more examples.
Basic example
Our basic compute demo shows a process of:
- Creating a bind group layout with
GPUDevice.createBindGroupLayout()
. - Feeding the
bindGroupLayout
intoGPUDevice.createPipelineLayout()
to create aGPUPipelineLayout
. - Using that value immediately in a
createComputePipeline()
call to create aGPUComputePipeline
.
// ...
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
Specification |
---|
WebGPU # gpucomputepipeline |
Browser compatibility
BCD tables only load in the browser
See also
- The WebGPU API