GPUDevice: createQuerySet()-Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser 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.
Die createQuerySet()-Methode der GPUDevice-Schnittstelle erstellt ein GPUQuerySet, das verwendet werden kann, um die Ergebnisse von Abfragen auf Passes, wie Okklusions- oder Zeitstempelabfragen, aufzuzeichnen.
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
GPUQuerySetverwaltet werden sollen. labelOptional-
Ein String, der ein Label bereitstellt, das verwendet werden kann, um das Objekt zu identifizieren, zum Beispiel in
GPUError-Meldungen oder Konsolenwarnungen. type-
Ein enumerierter Wert, der den Typ der Abfragen angibt, die vom resultierenden
GPUQuerySetverwaltet werden sollen. Mögliche Werte sind:"occlusion"-
Okklusionsabfragen stehen bei Render-Passes zur Verfügung, um die Anzahl der Fragmentproben abzufragen, die alle per-Fragment-Tests für einen Satz von Zeichnungsbefehlen bestehen (einschließlich Schere, Sample-Maske, Alpha-to-Coverage, Schablonen- und Tiefentests). Um eine Okklusionsabfrage auszuführen, muss ein geeignetes
GPUQuerySetals Wert derocclusionQuerySet-Deskriptoreigenschaft angegeben werden, wennGPUCommandEncoder.beginRenderPass()aufgerufen wird, um einen Render-Pass auszuführen. "timestamp"-
Zeitstempelabfragen ermöglichen es Anwendungen, Zeitstempel an ein
GPUQuerySetzu schreiben. Um eine Zeitstempelabfrage auszuführen, müssen geeigneteGPUQuerySetinnerhalb des Wertes dertimestampWrites-Deskriptoreigenschaft bereitgestellt werden, wennGPUCommandEncoder.beginRenderPass()aufgerufen wird, um einen Render-Pass auszuführen, oderGPUCommandEncoder.beginComputePass(), um einen Compute-Pass auszuführen. Alternativ können Sie jederzeit eine einzelne Zeitstempelabfrage durchführen, indem SieGPUCommandEncoder.writeTimeStamp()mit einem geeignetenGPUQuerySetals Parameter aufrufen.Hinweis: Das
timestamp-queryFeature muss aktiviert sein, um Zeitstempelabfragen verwenden zu können.
Rückgabewert
Eine Instanz eines GPUQuerySet-Objekts.
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenn createQuerySet() aufgerufen wird, andernfalls wird ein GPUValidationError generiert und ein ungültiges GPUQuerySet-Objekt zurückgegeben:
countist kleiner oder gleich 4096.
Beispiele
Das folgende Snippet erstellt ein GPUQuerySet, das 32 Okklusionsabfrageergebnisse hält:
const querySet = device.createQuerySet({
type: "occlusion",
count: 32,
});
Spezifikationen
| Spezifikation |
|---|
| WebGPU> # dom-gpudevice-createqueryset> |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API