The GPUQuerySet
interface of the WebGPU API is used to record the results of queries on passes, such as occlusion or timestamp queries.
- Occlusion queries are available on render passes to query whether any fragment samples pass all the per-fragment tests for a set of drawing commands (including scissor, sample mask, alpha to coverage, stencil, and depth tests). To run an occlusion query, an appropriate
GPUQuerySet
must be provided as the value of the occlusionQuerySet
descriptor property when invoking GPUCommandEncoder.beginRenderPass()
to run a render pass.
- Timestamp queries allow applications to write timestamps to a
GPUQuerySet
. To run a timestamp query, appropriate GPUQuerySet
s must be provided inside the value of the timestampWrites
descriptor property when invoking GPUCommandEncoder.beginRenderPass()
to run a render pass, or GPUCommandEncoder.beginComputePass()
to run a compute pass. Alternatively, you can run a single timestamp query at any time by invoking GPUCommandEncoder.writeTimeStamp()
with an appropriate GPUQuerySet
as a parameter.
Note: To use timestamp queries, the timestamp-query
feature must be enabled in the GPUDevice
.
A GPUQuerySet
object instance is created using the GPUDevice.createQuerySet()
method.
Instance properties
count
Experimental Read only
-
A number specifying the number of queries managed by the GPUQuerySet
.
label
Experimental
-
A string providing a label that can be used to identify the object, for example in GPUError
messages or console warnings.
type
Experimental Read only
-
An enumerated value specifying the type of queries managed by the GPUQuerySet
.
Instance methods
destroy()
Experimental
-
Destroys the GPUQuerySet
.
Examples
The following snippet creates a GPUQuerySet
that holds 32 occlusion query results, and then returns the type
and count
:
const querySet = device.createQuerySet({
type: "occlusion",
count: 32,
});
console.log(querySet.count);
console.log(querySet.type);
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 |
GPUQuerySet |
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 |
count |
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 |
destroy |
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 |
label |
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 |
type |
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