GPUQuerySet

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细检查 浏览器兼容性表

安全上下文:此功能仅在 安全上下文(HTTPS)中可用,某些或所有 支持的浏览器 中均如此。

GPUQuerySetWebGPU API 的一个接口,用于记录对传递(例如遮挡或时间戳查询)的查询结果。

  • 遮挡查询可在渲染传递上使用,以查询是否有任何片段样本通过一组绘图命令的所有逐片段测试(包括剪切、样本掩码、alpha 到覆盖、模板和深度测试)。要运行遮挡查询,在调用 GPUCommandEncoder.beginRenderPass() 以运行渲染传递时,必须将适当的 GPUQuerySet 作为 occlusionQuerySet 描述符属性的值提供。
  • 时间戳查询允许应用程序将时间戳写入 GPUQuerySet。要运行时间戳查询,在调用 GPUCommandEncoder.beginRenderPass() 以运行渲染传递或 GPUCommandEncoder.beginComputePass() 以运行计算传递时,必须在 timestampWrites 描述符属性的值内提供适当的 GPUQuerySet。或者,您可以随时通过调用 GPUCommandEncoder.writeTimeStamp() 并将适当的 GPUQuerySet 作为参数来运行单个时间戳查询。

注意: 要使用时间戳查询,必须在 GPUDevice 中启用 timestamp-query 特性

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

实例属性

count 实验性 只读

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

label 实验性

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

type 实验性 只读

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

实例方法

destroy() 实验性

销毁GPUQuerySet

示例

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

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

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

规范

规范
WebGPU
# gpuqueryset

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅