GPUQueue
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, bevor Sie diese produktiv verwenden.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die GPUQueue
-Schnittstelle der WebGPU API steuert die Ausführung von kodierten Befehlen auf der GPU.
Auf die primäre Warteschlange eines Geräts wird über die GPUDevice.queue
-Eigenschaft zugegriffen.
Instanzeigenschaften
Instanzmethoden
copyExternalImageToTexture()
Experimentell-
Kopiert einen Schnappschuss von einem Quellbild, Video oder Canvas in eine gegebene
GPUTexture
. onSubmittedWorkDone()
Experimentell-
Gibt ein
Promise
zurück, das aufgelöst wird, wenn alle an die GPU über dieseGPUQueue
gesendeten Arbeiten zum Zeitpunkt des Aufrufs der Methode bearbeitet wurden. submit()
Experimentell-
Plant die Ausführung von Befehls-Puffern, die durch ein oder mehrere
GPUCommandBuffer
-Objekte dargestellt werden, durch die GPU. writeBuffer()
Experimentell-
Schreibt eine bereitgestellte Datenquelle in einen gegebenen
GPUBuffer
. writeTexture()
Experimentell-
Schreibt eine bereitgestellte Datenquelle in eine gegebene
GPUTexture
.
Beispiele
In unserem Grundlegenden Render-Demo definieren wir einige Vertex-Daten in einem Float32Array
, das wir verwenden werden, um ein Dreieck zu zeichnen:
const vertices = new Float32Array([
0.0, 0.6, 0, 1, 1, 0, 0, 1, -0.5, -0.6, 0, 1, 0, 1, 0, 1, 0.5, -0.6, 0, 1, 0,
0, 1, 1,
]);
Um diese Daten in einer Render-Pipeline zu verwenden, müssen wir sie in einen GPUBuffer
einfügen. Zuerst erstellen wir den Puffer:
const vertexBuffer = device.createBuffer({
size: vertices.byteLength, // make it big enough to store vertices in
usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
});
Um die Daten in den Puffer zu bekommen, können wir die Funktion writeBuffer()
verwenden, die dem Benutzeragenten die effizienteste Möglichkeit bietet, die Daten zu kopieren:
device.queue.writeBuffer(vertexBuffer, 0, vertices, 0, vertices.length);
Später wird eine Reihe von Befehlen mithilfe der Methode GPUCommandEncoder.finish()
in einen GPUCommandBuffer
kodiert. Der Befehls-Puffer wird dann über einen submit()
-Aufruf in die Warteschlange weitergeleitet, um von der GPU bearbeitet zu werden.
device.queue.submit([commandEncoder.finish()]);
Hinweis: Studieren Sie die WebGPU-Beispiele, um weitere Warteschlangenbeispiele zu finden.
Spezifikationen
Specification |
---|
WebGPU # gpu-queue |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Die WebGPU API