GPURenderPassEncoder: executeBundles() method - Web APIs | MDN

Syntax

js

executeBundles(bundles)

Parameters

bundles

An array of GPURenderBundle objects, containing the pre-recorded commands to execute.

Return value

None (Undefined).

Validation

The following criteria must be met when calling executeBundles(), otherwise a GPUValidationError is generated and the GPURenderPassEncoder becomes invalid.

For each GPURenderBundle:

Examples

In the WebGPU Samples Animometer example, a lot of like operations are done on many different objects simultaneously. executeBundles() is used to reuse the work on multiple render passes to improve performance. Study the example code listing for the full context.

js

// …

return function doDraw(timestamp) {
  if (startTime === undefined) {
    startTime = timestamp;
  }
  uniformTime[0] = (timestamp - startTime) / 1000;
  device.queue.writeBuffer(uniformBuffer, timeOffset, uniformTime.buffer);

  renderPassDescriptor.colorAttachments[0].view = context
    .getCurrentTexture()
    .createView();

  const commandEncoder = device.createCommandEncoder();
  const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);

  if (settings.renderBundles) {
    passEncoder.executeBundles([renderBundle]);
  } else {
    recordRenderPass(passEncoder);
  }

  passEncoder.end();
  device.queue.submit([commandEncoder.finish()]);
};

// …

Specifications

Specification
WebGPU
# dom-gpurenderpassencoder-executebundles

Browser compatibility

See also

Help improve MDN

Learn how to contribute

This page was last modified on by MDN contributors.