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 des GPUDevice
Interfaces erstellt ein GPUQuerySet
, das verwendet werden kann, um die Ergebnisse von Abfragen auf Passes aufzuzeichnen, wie beispielsweise 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 ein Label bereitstellt, das verwendet werden kann, um das Objekt zu identifizieren, beispielsweise 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 sind auf Render-Passes verfügbar, um die Anzahl der Fragmentproben abzufragen, die alle per-Fragment-Tests für eine Reihe von Zeichnungsbefehlen bestehen (einschließlich Schere, Probemasken, Alpha-to-Coverage, Stencil und Tiefentests). Um eine Okklusionsabfrage auszuführen, muss ein entsprechendes
GPUQuerySet
als Wert derocclusionQuerySet
Descriptor-Eigenschaft angegeben werden, wennGPUCommandEncoder.beginRenderPass()
aufgerufen wird, um einen Render-Pass auszuführen. "timestamp"
-
Zeitstempelabfragen ermöglichen Anwendungen, Zeitstempel an ein
GPUQuerySet
zu schreiben. Um eine Zeitstempelabfrage auszuführen, müssen entsprechendeGPUQuerySet
s innerhalb des Werts dertimestampWrites
Descriptor-Eigenschaft angegeben 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 ausführen, indem SieGPUCommandEncoder.writeTimeStamp()
mit einem geeignetenGPUQuerySet
als Parameter aufrufen.Hinweis: Die
timestamp-query
Funktion 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
Der folgende Codeausschnitt 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