web api instance method
GPURenderBundleEncoder: setPipeline() method
Secure contextAvailable in workers
The setPipeline() method of the
GPURenderBundleEncoder interface sets the GPURenderPipeline to use for subsequent render bundle commands.
[!NOTE] This method is functionally identical to its equivalent on
GPURenderPassEncoder—setPipeline().
Syntax
setPipeline(pipeline)
Parameters
pipeline- : The
GPURenderPipelineto use for subsequent render bundle commands.
- : The
Return value
None (undefined).
Validation
The following criteria must be met when calling setPipeline(), otherwise a GPUValidationError is generated and the GPURenderBundleEncoder becomes invalid:
- If the
GPURenderPipelinewrites to the depth component of the depth/stencil attachment,depthReadOnly(as specified in the descriptor of the originatingbeginRenderPass()call) istrue. - If the
GPURenderPipelinewrites to the stencil component of the depth/stencil attachment,stencilReadOnly(as specified in the descriptor of the originatingbeginRenderPass()call) istrue.
Examples
function recordRenderPass(passEncoder) {
if (settings.dynamicOffsets) {
passEncoder.setPipeline(dynamicPipeline);
} else {
passEncoder.setPipeline(pipeline);
}
passEncoder.setVertexBuffer(0, vertexBuffer);
passEncoder.setBindGroup(0, timeBindGroup);
const dynamicOffsets = [0];
for (let i = 0; i < numTriangles; ++i) {
if (settings.dynamicOffsets) {
dynamicOffsets[0] = i * alignedUniformBytes;
passEncoder.setBindGroup(1, dynamicBindGroup, dynamicOffsets);
} else {
passEncoder.setBindGroup(1, bindGroups[i]);
}
passEncoder.draw(3, 1, 0, 0);
}
}
The above snippet is taken from the WebGPU Samples Animometer example.
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.
See also
- The WebGPU API