Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
GPUDevice: createQuerySet()-Methode
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 insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist inWeb Workers verfügbar.
DiecreateQuerySet()-Methode derGPUDevice-Schnittstelle erstellt einGPUQuerySet, das verwendet werden kann, um die Ergebnisse von Abfragen auf Passes, wie Okklusions- oder Zeitstempelabfragen, aufzuzeichnen.
In diesem Artikel
Syntax
createQuerySet(descriptor)Parameter
descriptorEin Objekt, das die folgenden Eigenschaften enthält:
countEine Zahl, die die Anzahl der Abfragen angibt, die vom resultierenden
GPUQuerySetverwaltet werden sollen.labelOptionalEin String, der ein Label bereitstellt, das verwendet werden kann, um das Objekt zu identifizieren, zum Beispiel in
GPUError-Meldungen oder Konsolenwarnungen.typeEin 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 einesGPUQuerySet-Objekts.
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenncreateQuerySet() aufgerufen wird, andernfalls wird einGPUValidationError generiert und ein ungültigesGPUQuerySet-Objekt zurückgegeben:
countist kleiner oder gleich 4096.
Beispiele
Das folgende Snippet erstellt einGPUQuerySet, das 32 Okklusionsabfrageergebnisse hält:
const querySet = device.createQuerySet({ type: "occlusion", count: 32,});Spezifikationen
| Specification |
|---|
| WebGPU> # dom-gpudevice-createqueryset> |
Browser-Kompatibilität
Siehe auch
- DieWebGPU API