GPURenderBundleEncoder: finish() method

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

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.

Syntax

js
finish(descriptor)

Parameters

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.

Validation

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()).

Examples

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

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

Specifications

Specification
WebGPU
# dom-gpurenderbundleencoder-finish

Browser compatibility

BCD tables only load in the browser

See also