GPUCommandEncoder: finish() 方法
finish()
是 GPUCommandEncoder
接口的一个方法,用于完成在此 GPUCommandEncoder
上编码的命令序列的记录,并返回相应的 GPUCommandBuffer
。
语法
js
finish()
finish(descriptor)
参数
descriptor
可选-
一个可以包含以下属性的对象
label
可选-
一个字符串,提供返回的
GPUCommandBuffer
的标签,可用于识别它,例如在GPUError
消息或控制台警告中。
返回值
一个 GPUCommandBuffer
对象实例。
验证
调用 finish()
时必须满足以下条件,否则会生成 GPUValidationError
,并且 GPUCommandEncoder
将变为无效状态
- 没有活动的调试组(即,未通过
pushDebugGroup()
启动)。 GPUCommandEncoder
处于打开状态 - 这意味着- 没有处于活动状态的子
GPUComputePassEncoder
或GPURenderPassEncoder
尚未结束(通过调用end()
)。 GPUCommandEncoder
上尚未调用finish()
(在这种情况下,它不能再用于编码任何命令)。
- 没有处于活动状态的子
示例
js
// ...
const commandBuffer = commandEncoder.finish();
device.queue.submit([commandBuffer]);
// ...
规范
规范 |
---|
WebGPU # dom-gpucommandencoder-finish |
浏览器兼容性
BCD 表格仅在浏览器中加载