GPUCommandEncoder: метод resolveQuerySet()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментально: Это экспериментальная технология
Перед использованием в производственной среде внимательно изучите таблицу совместимости браузеров таблицу совместимости.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Метод resolveQuerySet() интерфейса GPUCommandEncoder кодирует команду, которая разрешает GPUQuerySet, копируя результаты в указанный GPUBuffer.
Синтаксис
resolveQuerySet(querySet, firstQuery, queryCount, destination, destinationOffset)
Параметры
querySet-
Объект
GPUQuerySet, представляющий разрешаемый набор запросов. firstQuery-
Индекс первого значения запроса, которое будет скопировано в буфер.
queryCount-
Количество запросов, которые будут скопированы в буфер, начиная с
firstQuery. destination-
GPUBuffer, представляющий буфер, в который будут скопированы значения запросов. destinationOffset-
Число, представляющее смещение в байтах от начала буфера, с которого начнется запись значений запросов.
Возвращаемое значение
None (Undefined).
Проверка
При вызове resolveQuerySet() должны быть соблюдены следующие критерии; в противном случае будет сгенерирована ошибка GPUValidationError, и GPUCommandEncoder станет недействительным:
- В
GPUBuffer.usagedestination.bufferдолжен быть включён флагGPUBufferUsage.QUERY_RESOLVE. -
firstQueryменьше количества запросов вquerySet. -
firstQuery+queryCountменьше или равно количеству запросов вquerySet. -
destinationOffsetкратно 256. -
destinationOffset+ 8 ×queryCountменьше или равноdestination.size.
Примеры
// ...
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 |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Хром | Edge | Firefox | Opera | Safari | Хром (Android) | Firefox (Android) | Opera (Android) | Safari (iOS) | Samsung Internet | WebView (Android) | |
resolveQuerySet |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
превьюВ настоящее время поддерживается только на Linux и Windows. |
99В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
См. также
- API WebGPU
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/GPUCommandEncoder/resolveQuerySet