GPUDevice: createQuerySet() 方法
createQuerySet()
方法是 GPUDevice
接口的一部分,它用于创建一个 GPUQuerySet
对象,该对象可用于记录对渲染通道进行查询的结果,例如遮挡查询或时间戳查询。
语法
createQuerySet(descriptor)
参数
descriptor
-
一个包含以下属性的对象
count
-
一个数字,指定由生成的
GPUQuerySet
管理的查询数量。 label
可选-
一个字符串,提供一个标签,该标签可用于标识对象,例如在
GPUError
消息或控制台警告中。 type
-
一个枚举值,指定由生成的
GPUQuerySet
管理的查询类型。可能的值是"occlusion"
-
遮挡查询可在渲染通道上使用,以查询通过一组绘制命令(包括裁剪、样本掩码、Alpha 到覆盖、模板和深度测试)的所有逐片段测试的片段样本数量。要运行遮挡查询,必须将适当的
GPUQuerySet
作为occlusionQuerySet
描述符属性的值提供,在调用GPUCommandEncoder.beginRenderPass()
以运行渲染通道时。 "timestamp"
-
时间戳查询允许应用程序将时间戳写入
GPUQuerySet
。要运行时间戳查询,必须在调用GPUCommandEncoder.beginRenderPass()
以运行渲染通道或GPUCommandEncoder.beginComputePass()
以运行计算通道时,在timestampWrites
描述符属性的值中提供适当的GPUQuerySet
。或者,您可以通过将适当的GPUQuerySet
作为参数调用GPUCommandEncoder.writeTimeStamp()
来随时运行单个时间戳查询。
返回值
一个 GPUQuerySet
对象实例。
验证
调用 createQuerySet()
时,必须满足以下条件,否则将生成 GPUValidationError
,并返回一个无效的 GPUQuerySet
对象
count
小于或等于 4096。
示例
以下代码片段创建了一个包含 32 个遮挡查询结果的 GPUQuerySet
const querySet = device.createQuerySet({
type: "occlusion",
count: 32,
});
规范
规范 |
---|
WebGPU # dom-gpudevice-createqueryset |
浏览器兼容性
BCD 表格仅在浏览器中加载