GPURenderBundleEncoder: finish() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

GPURenderBundleEncoder 接口的 finish() 方法会完成当前渲染 bundle 命令序列的录制,返回一个可以传递给 GPURenderPassEncoder.executeBundles() 调用以在特定渲染通道中执行这些命令的 GPURenderBundle 对象。

语法

js
finish(descriptor)

参数

descriptor 可选

包含以下属性的对象:

label 可选

一个字符串,提供可用于识别对象的标签,例如在 GPUError 消息或控制台警告中。

返回值

一个 GPURenderBundle 对象实例。

验证

调用 finish() 时必须满足以下条件,否则会生成一个 GPUValidationError,并且 GPURenderBundleEncoder 会失效

  • GPURenderBundleEncoder 处于打开状态(即,尚未通过 finish() 调用结束)。
  • 当前渲染通道的调试堆栈为空(即,没有当前打开的渲染通道调试组,如通过 pushDebugGroup() 打开的)。

示例

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

上面的代码片段摘自 WebGPU 示例 Animometer 示例

规范

规范
WebGPU
# dom-gpurenderbundleencoder-finish

浏览器兼容性

另见