Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
GPUCommandEncoder: beginComputePass() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist inWeb Workers verfügbar.
DiebeginComputePass() Methode derGPUCommandEncoder-Schnittstelle startet die Kodierung eines Compute-Passes und gibt einenGPUComputePassEncoder zurück, der zur Steuerung der Berechnung verwendet werden kann.
In diesem Artikel
Syntax
beginComputePass()beginComputePass(descriptor)Parameter
descriptorOptionalEin Objekt mit den folgenden Eigenschaften:
labelOptionalEin String, der eine Bezeichnung bereitstellt, die verwendet werden kann, um das Objekt beispielsweise in
GPUError-Nachrichten oder Konsolenwarnungen zu identifizieren.timestampWritesOptionalEin Array von Objekten, das definiert, wo und wann Zeitstempelabfrage-Werte für diesen Pass geschrieben werden. Diese Objekte haben die folgenden Eigenschaften:
querySetEin
GPUQuerySetvom Typ"timestamp", zu dem die Ergebnisse der Zeitstempelabfrage geschrieben werden.beginningOfPassWriteIndexEine Zahl, die den Abfrageindex in
querySetangibt, an dem der Zeitstempel zu Beginn des Render-Passes geschrieben wird. Dies ist optional - wenn nicht definiert, wird kein Zeitstempel für den Beginn des Passes geschrieben.endOfPassWriteIndexEine Zahl, die den Abfrageindex in
querySetangibt, an dem der Zeitstempel am Ende des Render-Passes geschrieben wird. Dies ist optional - wenn nicht definiert, wird kein Zeitstempel für das Ende des Passes geschrieben.
Hinweis:Das
timestamp-queryFeature muss aktiviert sein, um Zeitstempelabfragen zu verwenden. Zeitstempelabfrage-Werte werden in Nanosekunden geschrieben, aber wie der Wert ermittelt wird, ist implementationsspezifisch.
Rückgabewert
EinGPUComputePassEncoder-Objektinstanz.
Validierung
Die folgenden Kriterien müssen beim Aufruf vonbeginComputePass() erfüllt sein, andernfalls wird einGPUValidationError erzeugt und ein ungültigerGPUComputePassEncoder zurückgegeben:
Beispiele
In unseremeinfachen Compute-Demo werden mehrere Befehle über einenGPUCommandEncoder aufgezeichnet. Die meisten dieser Befehle stammen von demGPUComputePassEncoder, der überbeginComputePass() erstellt wurde.
// …// Create GPUCommandEncoder to encode commands to issue to the GPUconst commandEncoder = device.createCommandEncoder();// Initiate render passconst passEncoder = commandEncoder.beginComputePass();// Issue commandspassEncoder.setPipeline(computePipeline);passEncoder.setBindGroup(0, bindGroup);passEncoder.dispatchWorkgroups(Math.ceil(BUFFER_SIZE / 64));// End the render passpassEncoder.end();// Copy output buffer to staging buffercommandEncoder.copyBufferToBuffer( output, 0, // Source offset stagingBuffer, 0, // Destination offset BUFFER_SIZE,);// End frame by passing array of command buffers to command queue for executiondevice.queue.submit([commandEncoder.finish()]);// …Spezifikationen
| Specification |
|---|
| WebGPU> # dom-gpucommandencoder-begincomputepass> |
Browser-Kompatibilität
Siehe auch
- DieWebGPU API