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 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
GPUQuerySet
verwaltet werden sollen. label
Optional-
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
GPUQuerySet
verwaltet 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
GPUQuerySet
als Wert derocclusionQuerySet
-Deskriptoreigenschaft angegeben werden, wennGPUCommandEncoder.beginRenderPass()
aufgerufen wird, um einen Render-Pass auszuführen. "timestamp"
-
Zeitstempelabfragen ermöglichen es Anwendungen, Zeitstempel an ein
GPUQuerySet
zu schreiben. Um eine Zeitstempelabfrage auszuführen, müssen geeigneteGPUQuerySet
innerhalb 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 geeignetenGPUQuerySet
als Parameter aufrufen.Hinweis: Das
timestamp-query
Feature 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:
count
ist 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
Specification |
---|
WebGPU # dom-gpudevice-createqueryset |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API