GPURenderBundleEncoder: setPipeline() Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die setPipeline() Methode der GPURenderBundleEncoder-Schnittstelle setzt die GPURenderPipeline, die für nachfolgende Render-Bündel-Befehle verwendet werden soll.
Hinweis:
Diese Methode ist funktional identisch mit ihrem Äquivalent auf GPURenderPassEncoder — setPipeline().
Syntax
setPipeline(pipeline)
Parameter
pipeline-
Die
GPURenderPipeline, die für nachfolgende Render-Bündel-Befehle verwendet werden soll.
Rückgabewert
Keiner (undefined).
Validierung
Die folgenden Kriterien müssen beim Aufrufen von setPipeline() erfüllt sein, andernfalls wird ein GPUValidationError generiert und der GPURenderBundleEncoder wird ungültig:
- Wenn die
GPURenderPipelineauf die Tiefenkomponente des Tiefen-/Stencil-Anhangs schreibt, istdepthReadOnly(wie im Deskriptor des ursprungsgekennzeichnetenGPUCommandEncoder.beginRenderPass()-Aufrufs angegeben)true. - Wenn die
GPURenderPipelineauf die Stencil-Komponente des Tiefen-/Stencil-Anhangs schreibt, iststencilReadOnly(wie im Deskriptor des ursprungsgekennzeichnetenGPUCommandEncoder.beginRenderPass()-Aufrufs angegeben)true.
Beispiele
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);
}
}
Das obige Beispiel ist aus den WebGPU-Beispielen des Animometer-Beispiels entnommen.
Spezifikationen
| Spezifikation |
|---|
| WebGPU> # dom-gpurendercommandsmixin-setpipeline> |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API