GPUCommandEncoder: resolveQuerySet() method
The resolveQuerySet() method of the GPUCommandEncoder interface encodes a command that resolves a GPUQuerySet, copying the results into a specified GPUBuffer.
Syntax
resolveQuerySet(querySet, firstQuery, queryCount, destination, destinationOffset)
Parameters
-
querySet
-
A GPUQuerySet object representing the query set to be resolved.
-
firstQuery
-
The index number of the first query value to be copied over to the buffer.
-
queryCount
-
The number of queries to be copied over to the buffer, starting from firstQuery.
-
destination
-
A GPUBuffer representing the buffer to copy the query values to.
-
destinationOffset
-
A number representing the offset, in bytes, from the start of the buffer to start writing the query values at.
Return value
Validation
The following criteria must be met when calling resolveQuerySet(), otherwise a GPUValidationError is generated and the GPUCommandEncoder becomes invalid:
- The
destination.buffer's 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.
Examples
const queryBuffer = device.createBuffer({
size: 1024,
usage: GPUBufferUsage.QUERY_RESOLVE,
});
const querySet = device.createQuerySet({
type: "timestamp",
count: 32,
});
const commandEncoder = device.createCommandEncoder();
commandEncoder.writeTimestamp(querySet, 0);
commandEncoder.writeTimestamp(querySet, 1);
commandEncoder.resolveQuerySet(
querySet,
0,
16,
queryBuffer,
0,
);
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
resolveQuerySet |
113Currently supported on ChromeOS, macOS, and Windows only.
|
113Currently supported on ChromeOS, macOS, and Windows only.
|
previewCurrently supported on Linux and Windows only.
|
No |
99Currently supported on ChromeOS, macOS, and Windows only.
|
No |
No |
No |
No |
No |
No |
No |
See also