Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
GPUQueue
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more support for this feature? Tell us why.
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
Promisezurück, das aufgelöst wird, wenn alle Arbeiten, die über dieseGPUQueuezum 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
| Spezifikation |
|---|
| WebGPU> # gpuqueue> |
Browser-Kompatibilität
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Siehe auch
- Die WebGPU API