GPUCommandEncoder: clearBuffer() 方法

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

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

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

浏览器兼容性

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

另请参阅