GPUDevice: createCommandEncoder() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die createCommandEncoder()
Methode der GPUDevice
Schnittstelle erstellt einen GPUCommandEncoder
, der verwendet wird, um Befehle zu kodieren, die an die GPU gesendet werden sollen.
Syntax
createCommandEncoder()
createCommandEncoder(descriptor)
Parameter
descriptor
Optional-
Ein Objekt, das die folgenden Eigenschaften enthält:
label
Optional-
Ein String, der ein Label bereitstellt, das zum Identifizieren des Objekts verwendet werden kann, zum Beispiel in
GPUError
Meldungen oder Konsolenwarnungen.
Rückgabewert
Eine Instanz des GPUCommandEncoder
Objekts.
Beispiele
In unserem einfachen Render-Demo werden mehrere Befehle über einen GPUCommandEncoder
aufgezeichnet, der über createCommandEncoder()
erstellt wurde:
// …
// 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();
// …
Die vom GPUCommandEncoder
codierten Befehle werden mithilfe der Methode GPUCommandEncoder.finish()
in ein GPUCommandBuffer
aufgezeichnet. Der Befehlsbuffer wird dann über einen submit()
Aufruf in die Warteschlange übergeben und ist bereit, von der GPU verarbeitet zu werden.
device.queue.submit([commandEncoder.finish()]);
Hinweis: Studieren Sie die WebGPU-Beispiele, um weitere Beispiele für die Befehlskodierung zu finden.
Spezifikationen
Specification |
---|
WebGPU # dom-gpudevice-createcommandencoder |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API