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 in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die beginComputePass() Methode der GPUCommandEncoder Schnittstelle startet die Kodierung eines Compute-Passes und gibt einen GPUComputePassEncoder zurück, der zur Steuerung der Berechnung verwendet werden kann.
Syntax
beginComputePass()
beginComputePass(descriptor)
Parameter
descriptorOptional-
Ein Objekt, das die folgenden Eigenschaften enthält:
labelOptional-
Ein String, der ein Label bereitstellt, das verwendet werden kann, um das Objekt zu identifizieren, beispielsweise in
GPUErrorMeldungen oder Konsolenwarnungen. timestampWritesOptional-
Ein Array von Objekten, das definiert, wo und wann Zeitstempel-Abfragewerte für diesen Pass geschrieben werden. Diese Objekte haben die folgenden Eigenschaften:
querySet-
Ein
GPUQuerySetvom Typ"timestamp", in das die Ergebnisse der Zeitstempelabfrage geschrieben werden. beginningOfPassWriteIndex-
Eine Zahl, die den Abfrageindex in
querySetangibt, an dem der Zeitstempel zu Beginn des Render-Passes geschrieben wird. Dies ist optional – wenn nicht definiert, wird für den Beginn des Passes kein Zeitstempel geschrieben. endOfPassWriteIndex-
Eine Zahl, die den Abfrageindex in
querySetangibt, an dem der Zeitstempel am Ende des Render-Passes geschrieben wird. Dies ist optional – wenn nicht definiert, wird für das Ende des Passes kein Zeitstempel geschrieben.
Hinweis: Der
timestamp-queryFeature muss aktiviert sein, um Zeitstempelabfragen zu verwenden. Zeitstempelabfragewerte werden in Nanosekunden geschrieben, aber wie der Wert bestimmt wird, ist implementierungsabhängig.
Rückgabewert
Eine Instanz des GPUComputePassEncoder Objekts.
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenn beginComputePass() aufgerufen wird, andernfalls wird ein GPUValidationError erzeugt und ein ungültiger GPUComputePassEncoder zurückgegeben:
Beispiele
In unserem grundlegenden Compute-Demo werden mehrere Kommandos über einen GPUCommandEncoder aufgenommen. Die meisten dieser Kommandos stammen vom GPUComputePassEncoder, der über beginComputePass() erstellt wurde.
// …
// Create GPUCommandEncoder to encode commands to issue to the GPU
const commandEncoder = device.createCommandEncoder();
// Initiate compute 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()]);
// …
Spezifikationen
| Specification |
|---|
| WebGPU> # dom-gpucommandencoder-begincomputepass> |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API