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 |
浏览器兼容性
加载中…