GPUQuerySet

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

GPUQuerySet 接口是 WebGPU API 的一部分,用于记录传递(pass)中的查询结果,例如遮挡查询或时间戳查询。

  • 渲染传递(render pass)中提供遮挡查询,用于查询一组绘图命令(包括裁剪、样本掩码、Alpha 到覆盖、模板和深度测试)是否有任何片段样本通过了所有片段测试。要运行遮挡查询,在调用 GPUCommandEncoder.beginRenderPass() 来运行渲染传递时,必须将一个合适的 GPUQuerySet 作为 occlusionQuerySet 描述符属性的值提供。

  • 时间戳查询允许应用程序将时间戳写入 GPUQuerySet。要运行时间戳查询,在调用 GPUCommandEncoder.beginRenderPass() 来运行渲染传递,或调用 GPUCommandEncoder.beginComputePass() 来运行计算传递时,必须在 timestampWrites 描述符属性的值内提供合适的 GPUQuerySet

注意: 要使用时间戳查询,需要启用 timestamp-query 功能

GPUQuerySet 对象实例是使用 GPUDevice.createQuerySet() 方法创建的。

实例属性

count 只读

一个指定 GPUQuerySet 管理的查询数量的数字。

label

一个字符串,提供可用于识别对象的标签,例如在 GPUError 消息或控制台警告中。

type 只读

一个指定 GPUQuerySet 管理的查询类型的枚举值。

实例方法

destroy()

销毁 GPUQuerySet

示例

以下代码片段创建了一个 GPUQuerySet,它包含 32 个遮挡查询结果,然后返回 typecount

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

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

规范

规范
WebGPU
# gpuqueryset

浏览器兼容性

另见