GPUCommandEncoder: resolveQuerySet() Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
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 resolveQuerySet()-Methode des GPUCommandEncoder-Interfaces kodiert einen Befehl, der ein GPUQuerySet auflöst und die Ergebnisse in einen angegebenen GPUBuffer kopiert.
Syntax
resolveQuerySet(querySet, firstQuery, queryCount, destination, destinationOffset)
Parameter
querySet-
Ein
GPUQuerySet-Objekt, das das aufzulösende Abfrageset darstellt. firstQuery-
Die Indexnummer des ersten Abfragewerts, der in den Puffer kopiert werden soll.
queryCount-
Die Anzahl der Abfragen, die beginnend mit
firstQueryin den Puffer kopiert werden sollen. destination-
Ein
GPUBuffer, der den Puffer darstellt, in den die Abfragewerte kopiert werden. destinationOffset-
Eine Zahl, die den Versatz in Bytes vom Beginn des Puffers darstellt, an dem die Abfragewerte geschrieben werden sollen.
Rückgabewert
Keiner (undefined).
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenn resolveQuerySet() aufgerufen wird. Andernfalls wird ein GPUValidationError generiert und der GPUCommandEncoder wird ungültig:
- Der
GPUBuffer.usagedesdestination.buffermuss dasGPUBufferUsage.QUERY_RESOLVE-Flag beinhalten. firstQueryist kleiner als die Anzahl der Abfragen inquerySet.firstQuery+queryCountist kleiner oder gleich der Anzahl der Abfragen inquerySet.destinationOffsetist ein Vielfaches von 256.destinationOffset+ 8 ×queryCountist kleiner oder gleichdestination.size.
Beispiele
// …
const queryBuffer = device.createBuffer({
size: 1024,
usage: GPUBufferUsage.QUERY_RESOLVE,
});
const querySet = device.createQuerySet({
type: "timestamp",
count: 32,
});
// …
const commandEncoder = device.createCommandEncoder();
// Write timestamps to querySet
commandEncoder.writeTimestamp(querySet, 0);
// …
commandEncoder.writeTimestamp(querySet, 1);
// etc.
// …
commandEncoder.resolveQuerySet(
querySet,
0, // First query to write
16, // Number of queries to count
queryBuffer,
0, // Buffer offset
);
// …
Spezifikationen
| Spezifikation |
|---|
| WebGPU> # dom-gpucommandencoder-resolvequeryset> |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API