GPUDevice: createQuerySet()-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, 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 createQuerySet()
-Methode des GPUDevice
-Interfaces erstellt ein GPUQuerySet
, das verwendet werden kann, um die Ergebnisse von Abfragen bei Durchläufen aufzuzeichnen, wie zum Beispiel Okklusions- oder Zeitstempelabfragen.
Syntax
createQuerySet(descriptor)
Parameter
descriptor
-
Ein Objekt, das die folgenden Eigenschaften enthält:
count
-
Eine Zahl, die die Anzahl der Abfragen angibt, die vom resultierenden
GPUQuerySet
verwaltet werden sollen. label
Optional-
Ein String, der eine Bezeichnung bereitstellt, die verwendet werden kann, um das Objekt zu identifizieren, zum Beispiel in
GPUError
-Nachrichten oder Konsolenwarnungen. type
-
Ein enumerierter Wert, der den Typ der Abfragen angibt, die vom resultierenden
GPUQuerySet
verwaltet werden sollen. Mögliche Werte sind:"occlusion"
-
Okklusionsabfragen sind in Render-Durchläufen verfügbar, um die Anzahl der Fragmentproben zu ermitteln, die alle Tests pro Fragment für einen Satz von Zeichenkommandos (einschließlich Schere, Probenmaske, Alpha-to-Coverage, Stencil- und Tiefentests) bestehen. Um eine Okklusionsabfrage auszuführen, muss ein entsprechendes
GPUQuerySet
als Wert derocclusionQuerySet
-Eigenschaft angegeben werden, wennGPUCommandEncoder.beginRenderPass()
aufgerufen wird, um einen Render-Durchlauf auszuführen. "timestamp"
-
Zeitstempelabfragen erlauben es Anwendungen, Zeitstempel in ein
GPUQuerySet
zu schreiben. Um eine Zeitstempelabfrage auszuführen, müssen entsprechendeGPUQuerySet
s im Wert dertimestampWrites
-Eigenschaft angegeben werden, wennGPUCommandEncoder.beginRenderPass()
aufgerufen wird, um einen Render-Durchlauf auszuführen, oderGPUCommandEncoder.beginComputePass()
, um einen Berechnungsdurchlauf auszuführen. Alternativ kann eine einzelne Zeitstempelabfrage jederzeit durch den Aufruf vonGPUCommandEncoder.writeTimeStamp()
mit einem entsprechendenGPUQuerySet
als Parameter ausgeführt werden.Hinweis: Die
timestamp-query
feature muss aktiviert sein, um Zeitstempelabfragen zu verwenden.
Rückgabewert
Eine Instanz des GPUQuerySet
-Objekts.
Validierung
Die folgenden Kriterien müssen beim Aufruf von createQuerySet()
erfüllt sein, andernfalls wird ein GPUValidationError
generiert und ein ungültiges GPUQuerySet
-Objekt zurückgegeben:
count
ist kleiner oder gleich 4096.
Beispiele
Das folgende Beispiel erstellt ein GPUQuerySet
, das 32 Okklusions-Abfrageergebnisse hält:
const querySet = device.createQuerySet({
type: "occlusion",
count: 32,
});
Spezifikationen
Specification |
---|
WebGPU # dom-gpudevice-createqueryset |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Die WebGPU API