GPUQueue
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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.
Das GPUQueue
-Interface der WebGPU API steuert die Ausführung von kodierten Befehlen auf der GPU.
Auf die Hauptwarteschlange eines Geräts wird über die Eigenschaft GPUDevice.queue
zugegriffen.
Instanzeigenschaften
Instanzmethoden
copyExternalImageToTexture()
-
Kopiert eine Momentaufnahme, die von einem Quellbild, Video oder Canvas aufgenommen wurde, in eine gegebene
GPUTexture
. onSubmittedWorkDone()
-
Gibt ein
Promise
zurück, das aufgelöst wird, wenn alle Arbeiten, die über dieseGPUQueue
zum Zeitpunkt des Aufrufs der Methode an die GPU übergeben wurden, verarbeitet wurden. submit()
-
Plant die Ausführung von Befehls-Puffern, die durch ein oder mehrere
GPUCommandBuffer
-Objekte dargestellt werden, durch die GPU. writeBuffer()
-
Schreibt eine bereitgestellte Datenquelle in einen gegebenen
GPUBuffer
. writeTexture()
-
Schreibt eine bereitgestellte Datenquelle in eine gegebene
GPUTexture
.
Beispiele
In unserem grundlegenden Render-Demo definieren wir einige Vertex-Daten in einem Float32Array
, die 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
legen. 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 es dem Benutzeragenten ermöglicht, den effizientesten Weg zu bestimmen, um die Daten zu kopieren:
device.queue.writeBuffer(vertexBuffer, 0, vertices, 0, vertices.length);
Später wird eine Reihe von Befehlen in einem GPUCommandBuffer
mit der Methode GPUCommandEncoder.finish()
kodiert. Der Befehls-Puffer wird dann über einen submit()
-Aufruf in die Warteschlange übergeben, bereit zur Verarbeitung durch die GPU.
device.queue.submit([commandEncoder.finish()]);
Hinweis: Studieren Sie die WebGPU-Beispiele, um weitere Beispiele für Warteschlangen zu finden.
Spezifikationen
Specification |
---|
WebGPU # gpu-queue |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API