GPUQuerySet
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
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 theocclusionQuerySet
descriptor property when invokingGPUCommandEncoder.beginRenderPass()
to run a render pass. -
Timestamp queries allow applications to write timestamps to a
GPUQuerySet
. To run a timestamp query, appropriateGPUQuerySet
s must be provided inside the value of thetimestampWrites
descriptor property when invokingGPUCommandEncoder.beginRenderPass()
to run a render pass, orGPUCommandEncoder.beginComputePass()
to run a compute pass.
Note:
The timestamp-query
feature needs to be enabled to use timestamp queries.
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); // 32
console.log(querySet.type); // "occlusion"
Specifications
Specification |
---|
WebGPU # gpuqueryset |
Browser compatibility
BCD tables only load in the browser
See also
- The WebGPU API