GPUDevice: createCommandEncoder()-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 createCommandEncoder()-Methode der GPUDevice-Schnittstelle erstellt einen GPUCommandEncoder, der verwendet wird, um Befehle zu kodieren, die an die GPU übermittelt werden sollen.

Syntax

js
createCommandEncoder()
createCommandEncoder(descriptor)

Parameter

descriptor Optional

Ein Objekt, das die folgenden Eigenschaften enthält:

label Optional

Ein String, der ein Label bereitstellt, das zur Identifizierung des Objekts verwendet werden kann, beispielsweise in GPUError-Nachrichten oder Konsolenwarnungen.

Rückgabewert

Eine Instanz des GPUCommandEncoder-Objekts.

Beispiele

In unserem Grundlagendemonstrationsprojekt zur Wiedergabe werden mehrere Befehle über einen GPUCommandEncoder aufgezeichnet, der über createCommandEncoder() erstellt wurde:

js
// …

// Create GPUCommandEncoder
const commandEncoder = device.createCommandEncoder();

// Create GPURenderPassDescriptor to tell WebGPU which texture to draw into, then initiate render pass
const renderPassDescriptor = {
  colorAttachments: [
    {
      clearValue: clearColor,
      loadOp: "clear",
      storeOp: "store",
      view: context.getCurrentTexture().createView(),
    },
  ],
};

const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);

// Draw a triangle
passEncoder.setPipeline(renderPipeline);
passEncoder.setVertexBuffer(0, vertexBuffer);
passEncoder.draw(3);

// End the render pass
passEncoder.end();

// …

Die durch den GPUCommandEncoder kodierten Befehle werden mithilfe der GPUCommandEncoder.finish()-Methode in einem GPUCommandBuffer aufgenommen. Der Befehls-Puffer wird dann mittels eines submit()-Aufrufs in die Warteschlange übergeben und ist bereit, von der GPU verarbeitet zu werden.

js
device.queue.submit([commandEncoder.finish()]);

Hinweis: Studieren Sie die WebGPU-Beispiele, um weitere Beispiele zur Befehlsenkodierung zu finden.

Spezifikationen

Specification
WebGPU
# dom-gpudevice-createcommandencoder

Browser-Kompatibilität

Siehe auch