GPUCommandEncoder: resolveQuerySet() 方法
注意:此功能在 Web Workers 中可用。
GPUCommandEncoder 介面的 resolveQuerySet() 方法會編碼一個用於解析 GPUQuerySet 的命令,並將結果複製到一個指定的 GPUBuffer 中。
語法
js
resolveQuerySet(querySet, firstQuery, queryCount, destination, destinationOffset)
引數
querySet-
一個表示要解析的查詢集的
GPUQuerySet物件。 firstQuery-
要複製到緩衝區的第一條查詢值(索引號)。
queryCount-
從
firstQuery開始,要複製到緩衝區中的查詢數量。 destination-
一個表示要將查詢值複製到的緩衝區的
GPUBuffer。 destinationOffset-
一個數字,表示從緩衝區開始處偏移多少位元組來寫入查詢值。
返回值
無 (Undefined)。
驗證
呼叫 resolveQuerySet() 時必須滿足以下條件,否則將生成 GPUValidationError,並且 GPUCommandEncoder 將失效。
destination.buffer的GPUBuffer.usage包含GPUBufferUsage.QUERY_RESOLVE標誌。firstQuery小於querySet中的查詢總數。firstQuery+queryCount小於或等於querySet中的查詢總數。destinationOffset是 256 的倍數。destinationOffset+ 8 ×queryCount小於或等於destination.size。
示例
js
// …
const queryBuffer = device.createBuffer({
size: 1024,
usage: GPUBufferUsage.QUERY_RESOLVE,
});
const querySet = device.createQuerySet({
type: "timestamp",
count: 32,
});
// …
const commandEncoder = device.createCommandEncoder();
// Write timestamps to querySet
commandEncoder.writeTimestamp(querySet, 0);
// …
commandEncoder.writeTimestamp(querySet, 1);
// etc.
// …
commandEncoder.resolveQuerySet(
querySet,
0, // First query to write
16, // Number of queries to count
queryBuffer,
0, // Buffer offset
);
// …
規範
| 規範 |
|---|
| WebGPU # dom-gpucommandencoder-resolvequeryset |
瀏覽器相容性
載入中…