GPUComputePassEncoder: end() 方法
end()
方法是 GPUComputePassEncoder
接口的一部分,用于完成当前计算通道命令序列的录制。
语法
js
end()
参数
无。
返回值
无 (Undefined
).
验证
调用 end()
时必须满足以下条件,否则将生成 GPUValidationError
,并且 GPUComputePassEncoder
将变为无效。
GPUComputePassEncoder
已打开(即尚未通过end()
调用结束)。- 对该编码器进行的任何
pushDebugGroup()
调用在调用end()
之前都有相应的popDebugGroup()
调用。
示例
在我们 基本的计算演示 中,通过 GPUCommandEncoder
录制了多个命令。 这些命令大部分来自通过 GPUCommandEncoder.beginComputePass()
创建的 GPUComputePassEncoder
。
js
const BUFFER_SIZE = 1000;
// ...
// Create GPUCommandEncoder to encode commands to issue to the GPU
const commandEncoder = device.createCommandEncoder();
// Initiate render pass
const passEncoder = commandEncoder.beginComputePass();
// Issue commands
passEncoder.setPipeline(computePipeline);
passEncoder.setBindGroup(0, bindGroup);
passEncoder.dispatchWorkgroups(Math.ceil(BUFFER_SIZE / 64));
// End the render pass
passEncoder.end();
// Copy output buffer to staging buffer
commandEncoder.copyBufferToBuffer(
output,
0, // Source offset
stagingBuffer,
0, // Destination offset
BUFFER_SIZE,
);
// End frame by passing array of command buffers to command queue for execution
device.queue.submit([commandEncoder.finish()]);
// ...
规范
规范 |
---|
WebGPU # dom-gpucomputepassencoder-end |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
- The WebGPU API