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

瀏覽器相容性

另見