GPUCommandEncoder: clearBuffer() 方法

可用性有限

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

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

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

clearBuffer() 方法是 GPUCommandEncoder 介面的一部分,它編碼一個命令,用零填充 GPUBuffer 的一個區域。

語法

js
clearBuffer(buffer)
clearBuffer(buffer, offset)
clearBuffer(buffer, offset, size)

引數

buffer

一個代表要清除的緩衝區的 GPUBuffer 物件。

offset 可選

一個數字,表示從 buffer 的開頭到要清除的子區域的偏移量(以位元組為單位)。如果省略,offset 預設為 0。

size 可選

一個數字,表示要清除的子區域的大小(以位元組為單位)。如果省略,size 預設為 buffer 大小 - offset

返回值

無 (Undefined)。

驗證

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

  • bufferGPUBuffer.usage 包含 GPUBufferUsage.COPY_DST 標誌。
  • offsetsize 都必須是 4 的倍數。
  • bufferGPUBuffer.size 大於或等於 offset + size

示例

js
// …

const buffer = device.createBuffer({
  size: 1000,
  usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST,
});

// Later on

const commandBuffer = device.createCommandEncoder();
commandEncoder.clearBuffer(buffer);

// …

規範

規範
WebGPU
# dom-gpucommandencoder-clearbuffer

瀏覽器相容性

另見