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 |
浏览器兼容性
加载中…