GPUCommandEncoder: resolveQuerySet() 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 resolveQuerySet()-Methode des GPUCommandEncoder-Interfaces kodiert einen Befehl, der ein GPUQuerySet auflöst, indem die Ergebnisse in einen angegebenen GPUBuffer kopiert werden.
Syntax
resolveQuerySet(querySet, firstQuery, queryCount, destination, destinationOffset)
Parameter
querySet-
Ein
GPUQuerySet-Objekt, das das aufzulösende Abfrageset repräsentiert. firstQuery-
Die Indexnummer des ersten Abfragewerts, der in den Puffer kopiert werden soll.
queryCount-
Die Anzahl der Abfragen, die ab
firstQueryin den Puffer kopiert werden sollen. destination-
Ein
GPUBuffer, der den Puffer repräsentiert, in den die Abfragewerte kopiert werden sollen. destinationOffset-
Eine Zahl, die den Versatz in Bytes vom Anfang des Puffers angibt, an dem mit dem Schreiben der Abfragewerte begonnen wird.
Rückgabewert
Keiner (Undefined).
Validierung
Die folgenden Kriterien müssen beim Aufruf von resolveQuerySet() erfüllt sein, andernfalls wird ein GPUValidationError erzeugt und der GPUCommandEncoder wird ungültig:
- Das
destination.buffer'sGPUBuffer.usageenthält dasGPUBufferUsage.QUERY_RESOLVE-Flag. firstQueryist kleiner als die Anzahl der Abfragen inquerySet.firstQuery+queryCountist kleiner als oder gleich der Anzahl der Abfragen inquerySet.destinationOffsetist ein Vielfaches von 256.destinationOffset+ 8 ×queryCountist kleiner als 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
| Specification |
|---|
| WebGPU> # dom-gpucommandencoder-resolvequeryset> |
Browser-Kompatibilität
Loading…
Siehe auch
- Die WebGPU API