GPUCommandEncoder: finish() 方法
注意:此功能在 Web Workers 中可用。
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 |
浏览器兼容性
加载中…