GPUCommandEncoder: finish() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

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

finish() 方法是 GPUCommandEncoder 介面的一部分,它會完成在此 GPUCommandEncoder 上編碼的命令序列的記錄,並返回一個相應的 GPUCommandBuffer

語法

js
finish()
finish(descriptor)

引數

descriptor 可選

一個可能包含以下屬性的物件:

label 可選

一個字串,為返回的 GPUCommandBuffer 提供一個標籤,用於標識它,例如在 GPUError 訊息或控制檯警告中。

返回值

一個 GPUCommandBuffer 物件例項。

驗證

呼叫 finish() 時必須滿足以下條件,否則將生成 GPUValidationError,並且 GPUCommandEncoder 會失效。

  • 沒有活動的除錯組(即,透過 pushDebugGroup() 啟動的)。
  • GPUCommandEncoder 處於開啟狀態 — 這意味著:
    • 沒有活動的子 GPUComputePassEncoderGPURenderPassEncoder 未結束(透過呼叫 end())。
    • GPUCommandEncoder 尚未呼叫過 finish() 方法(在這種情況下,不能再使用它來編碼任何命令)。

示例

js
// …

const commandBuffer = commandEncoder.finish();
device.queue.submit([commandBuffer]);

// …

規範

規範
WebGPU
# dom-gpucommandencoder-finish

瀏覽器相容性

另見