Firefox Tomorrow

web api interface

GPUCommandEncoder

View on MDN ↗

Secure contextAvailable in workers

The GPUCommandEncoder interface of the WebGPU API represents an encoder that collects a sequence of GPU commands to be issued to the GPU.

A GPUCommandEncoder object instance is created via the createCommandEncoder() property.

Instance properties

  • label
    • : A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.

Instance methods

Examples

In our basic render demo, several commands are recorded via a GPUCommandEncoder:

// …

// 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();

// …

The commands encoded by the GPUCommandEncoder are recorded into a GPUCommandBuffer using the finish() method. The command buffer is then passed into the queue via a submit() call, ready to be processed by the GPU.

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

[!NOTE] Study the WebGPU samples to find more command encoding examples.

Specifications

SpecificationsStandards references are available on the canonical MDN page.

Browser compatibility

Browser compatibilityCompatibility data is available on the canonical MDN page.

See also