GPUCommandEncoder: resolveQuerySet()-Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
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 der GPUCommandEncoder
-Schnittstelle 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 Abfrageset darstellt, das aufgelöst werden soll. firstQuery
-
Die Indexnummer des ersten Abfragewerts, der in den Puffer kopiert werden soll.
queryCount
-
Die Anzahl der Abfragen, die in den Puffer kopiert werden sollen, beginnend mit
firstQuery
. destination
-
Ein
GPUBuffer
, der den Puffer darstellt, in den die Abfragewerte kopiert werden sollen. destinationOffset
-
Eine Zahl, die den Offset in Bytes vom Beginn des Puffers darstellt, ab 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
erzeugt und der GPUCommandEncoder
wird ungültig:
- Das
destination.buffer
-GPUBuffer.usage
enthält dasGPUBufferUsage.QUERY_RESOLVE
-Flag. firstQuery
ist kleiner als die Anzahl der Abfragen inquerySet
.firstQuery
+queryCount
ist kleiner oder gleich der Anzahl der Abfragen inquerySet
.destinationOffset
ist ein Vielfaches von 256.destinationOffset
+ 8 ×queryCount
ist 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
Specification |
---|
WebGPU # dom-gpucommandencoder-resolvequeryset |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Die WebGPU API