Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
beginComputePass()
beginComputePass(descriptor)

Parameter

descriptor Optional

Ein Objekt, das die folgenden Eigenschaften enthält:

label Optional

Ein String, der ein Label bereitstellt, das verwendet werden kann, um das Objekt zu identifizieren, beispielsweise in GPUError Meldungen oder Konsolenwarnungen.

timestampWrites Optional

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 GPUQuerySet vom Typ "timestamp", in das die Ergebnisse der Zeitstempelabfrage geschrieben werden.

beginningOfPassWriteIndex

Eine Zahl, die den Abfrageindex in querySet angibt, 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 querySet angibt, 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-query Feature 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.

js
// …

// 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