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

瀏覽器相容性

另見