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 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 GPUQuerySets 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.

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:

js
const querySet = device.createQuerySet({
  type: "occlusion",
  count: 32,
});

console.log(querySet.count); // 32
console.log(querySet.type); // "occlusion"

Specifications

Specification
WebGPU
# gpuqueryset

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
GPUQuerySet
Experimental
count
Experimental
destroy
Experimental
label
Experimental
type
Experimental
timestamp value
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.
User must explicitly enable this feature.
Has more compatibility info.

See also