GPUComputePassEncoder: end() 方法
注意:此功能在 Web Workers 中可用。
GPUComputePassEncoder 介面的 end() 方法用於完成當前計算通道命令序列的記錄。
語法
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 |
瀏覽器相容性
載入中…