GPURenderBundleEncoder: finish() 方法

实验性: 这是一个 实验性技术
在生产环境中使用此功能前,请仔细检查 浏览器兼容性表

安全上下文: 此功能仅在 安全上下文(HTTPS)中可用,并且在某些或所有 支持的浏览器中可用。

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

语法

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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅