GPURenderBundleEncoder: finish() method

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The finish() method of the GPURenderBundleEncoder interface completes recording of the current render bundle command sequence, returning a GPURenderBundle object that can be passed into a GPURenderPassEncoder.executeBundles() call to execute those commands in a specific render pass.




descriptor Optional

An object containing the following properties:

label Optional

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

Return value

A GPURenderBundle object instance.


The following criteria must be met when calling finish(), otherwise a GPUValidationError is generated and the GPURenderBundleEncoder becomes invalid:

  • The GPURenderBundleEncoder is open (i.e. not already ended via a finish() call).
  • The debug stack for the current render pass is empty (i.e. no render pass debug group is currently open, as opened by pushDebugGroup()).


const renderBundleEncoder = device.createRenderBundleEncoder({
  colorFormats: [presentationFormat],
const renderBundle = renderBundleEncoder.finish();

The above snippet is taken from the WebGPU Samples Animometer example.


# dom-gpurenderbundleencoder-finish

Browser compatibility

BCD tables only load in the browser

See also