GPUComputePassEncoder: setPipeline() method
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 setPipeline()
method of the
GPUComputePassEncoder
interface sets the GPUComputePipeline
to use for this compute pass.
Syntax
setPipeline(pipeline)
Parameters
pipeline
-
The
GPUComputePipeline
to use for this compute pass.
Return value
None (Undefined
).
Examples
In our basic compute demo, several commands are recorded via a GPUCommandEncoder
. Most of these commands originate from the GPUComputePassEncoder
created via beginComputePass()
. The setPipeline()
call is used as appropriate to set the pipeline to use for this pass.
const BUFFER_SIZE = 1000;
// ...
// Create GPUCommandEncoder to encode commands to issue to the GPU
const commandEncoder = device.createCommandEncoder();
// Initiate render pass
const passEncoder = commandEncoder.beginComputePass();
// Issue commands
passEncoder.setPipeline(computePipeline);
passEncoder.setBindGroup(0, bindGroup);
passEncoder.dispatchWorkgroups(Math.ceil(BUFFER_SIZE / 64));
// End the render pass
passEncoder.end();
// Copy output buffer to staging buffer
commandEncoder.copyBufferToBuffer(
output,
0, // Source offset
stagingBuffer,
0, // Destination offset
BUFFER_SIZE,
);
// End frame by passing array of command buffers to command queue for execution
device.queue.submit([commandEncoder.finish()]);
// ...
Specifications
Specification |
---|
WebGPU # dom-gpucomputepassencoder-setpipeline |
Browser compatibility
BCD tables only load in the browser
See also
- The WebGPU API