files/en-us/web/api/gpucommandencoder/resolvequeryset/index.md
{{APIRef("WebGPU API")}}{{SecureContext_Header}}{{AvailableInWorkers}}
The resolveQuerySet() method of the
{{domxref("GPUCommandEncoder")}} interface encodes a command that resolves a {{domxref("GPUQuerySet")}}, copying the results into a specified {{domxref("GPUBuffer")}}.
resolveQuerySet(querySet, firstQuery, queryCount, destination, destinationOffset)
querySet
firstQuery
queryCount
firstQuery.destination
destinationOffset
None ({{jsxref("Undefined")}}).
The following criteria must be met when calling resolveQuerySet(), otherwise a {{domxref("GPUValidationError")}} is generated and the {{domxref("GPUCommandEncoder")}} becomes invalid:
destination.buffer's {{domxref("GPUBuffer.usage")}} includes the GPUBufferUsage.QUERY_RESOLVE flag.firstQuery is smaller than the number of queries in querySet.firstQuery + queryCount is smaller than or equal to the number of queries in querySet.destinationOffset is a multiple of 256.destinationOffset + 8 × queryCount is less than or equal to destination.size.// …
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
);
// …
{{Specifications}}
{{Compat}}