GPUDevice: createCommandEncoder() 方法
createCommandEncoder()
是 GPUDevice
接口的方法,用于创建一个 GPUCommandEncoder
,该对象用于编码要发送到 GPU 的命令。
语法
js
createCommandEncoder()
createCommandEncoder(descriptor)
参数
descriptor
可选-
包含以下属性的对象
返回值
一个 GPUCommandEncoder
对象实例。
示例
在我们的 基本渲染演示 中,多个命令通过 GPUCommandEncoder
记录,该对象通过 createCommandEncoder()
创建。
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
编码的命令被重新编码为 GPUCommandBuffer
,使用 GPUCommandEncoder.finish()
方法。然后,命令缓冲区通过 submit()
调用传递到队列中,准备由 GPU 处理。
js
device.queue.submit([commandEncoder.finish()]);
注意: 研究 WebGPU 示例 以找到更多命令编码示例。
规范
规范 |
---|
WebGPU # dom-gpudevice-createcommandencoder |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参见
- The WebGPU API