This feature is not Baseline because it does not work in some of the most widely-used browsers.
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 GPURenderBundleEncoder interface sets the GPURenderPipeline to use for subsequent render bundle commands.
Note: This method is functionally identical to its equivalent on GPURenderPassEncoder — setPipeline().
setPipeline(pipeline)
pipelineThe GPURenderPipeline to use for subsequent render bundle commands.
None (Undefined).
The following criteria must be met when calling setPipeline(), otherwise a GPUValidationError is generated and the GPURenderBundleEncoder becomes invalid:
GPURenderPipeline writes to the depth component of the depth/stencil attachment, depthReadOnly (as specified in the descriptor of the originating GPUCommandEncoder.beginRenderPass() call) is true.GPURenderPipeline writes to the stencil component of the depth/stencil attachment, stencilReadOnly (as specified in the descriptor of the originating GPUCommandEncoder.beginRenderPass() call) is true.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.
| Specification |
|---|
| WebGPU> # dom-gpurendercommandsmixin-setpipeline> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
setPipeline |
113Currently supported on ChromeOS, macOS, and Windows only. |
113Currently supported on ChromeOS, macOS, and Windows only. |
141Currently supported on Windows only, in all contexts except for service workers. |
99Currently supported on ChromeOS, macOS, and Windows only. |
26 | 121 | No | 81 | 26 | 25.0 | 121 | 26 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/GPURenderBundleEncoder/setPipeline