GPUDevice:createCommandEncoder() 方法
注意:此功能在 Web Workers 中可用。
GPUDevice 介面的 createCommandEncoder() 方法會建立一個 GPUCommandEncoder,該物件用於編碼要提交給 GPU 的命令。
語法
js
createCommandEncoder()
createCommandEncoder(descriptor)
引數
descriptor可選-
包含以下屬性的物件:
返回值
一個 GPUCommandEncoder 物件例項。
示例
在我們 基本的渲染演示中,透過 createCommandEncoder() 建立的 GPUCommandEncoder 記錄了多個命令。
js
// …
// Create GPUCommandEncoder
const commandEncoder = device.createCommandEncoder();
// Create GPURenderPassDescriptor to tell WebGPU which texture to draw into, then initiate render pass
const renderPassDescriptor = {
colorAttachments: [
{
clearValue: clearColor,
loadOp: "clear",
storeOp: "store",
view: context.getCurrentTexture().createView(),
},
],
};
const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);
// Draw a triangle
passEncoder.setPipeline(renderPipeline);
passEncoder.setVertexBuffer(0, vertexBuffer);
passEncoder.draw(3);
// End the render pass
passEncoder.end();
// …
透過 GPUCommandEncoder.finish() 方法,GPUCommandEncoder 編碼的命令會被記錄到一個 GPUCommandBuffer 中。然後,該命令緩衝區會透過 submit() 呼叫傳遞到佇列,準備由 GPU 處理。
js
device.queue.submit([commandEncoder.finish()]);
注意: 請學習 WebGPU 示例以查詢更多命令編碼示例。
規範
| 規範 |
|---|
| WebGPU # dom-gpudevice-createcommandencoder |
瀏覽器相容性
載入中…