Spec-Zone.ru › Web APIs

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.usage destination.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API