Spec-Zone.ru › Web APIs

GPUCommandEncoder: метод beginComputePass()

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Экспериментально: Это экспериментальная технология.
Тщательно проверьте таблицу совместимости браузеров перед использованием в производстве.

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.

Примечание: Эта функция доступна в Web Workers.

Метод beginComputePass() интерфейса GPUCommandEncoder начинает кодирование вычислительного пасса, возвращая GPUComputePassEncoder, который может использоваться для управления вычислениями.

Синтаксис

beginComputePass()
beginComputePass(descriptor)

Параметры

descriptor Необязательно

Объект, содержащий следующие свойства:

label Необязательно

Строка, предоставляющая метку, которую можно использовать для идентификации объекта, например, в сообщениях об GPUError или предупреждениях консоли.

timestampWrites Необязательно

Массив объектов, определяющих, где и когда будут записаны значения запросов отметки времени для этого пасса. Эти объекты имеют следующие свойства:

  • location: Перечисление, указывающее, когда будет выполнена отметка времени. Доступные значения:
    • "beginning": Отметка времени выполняется вместе с другими закодированными командами в вычислительном пассе после отправки соответствующего GPUCommandBuffer.
    • "end": Отметка времени выполняется как часть отдельного списка прикреплений отметки времени по завершении пасса.
  • queryIndex: Число, указывающее индексную позицию в querySet, в которую будет записана отметка времени.
  • querySet: GPUQuerySet, в который будет записана отметка времени.

Примечание: Для использования запросов отметки времени необходимо включить функцию timestamp-query.

Возвращаемое значение

Экземпляр объекта GPUComputePassEncoder.

Валидация

При вызове beginComputePass() должны быть выполнены следующие условия; в противном случае генерируется GPUValidationError, и возвращается недействительный GPUComputePassEncoder:

  • Функция timestamp-query из GPUDevice должна быть включена.
  • Ни у двух объектов timestampWrites не должно быть одинакового значения location.. Это означает, что вы можете запускать только две запросы отметки времени за один проход рендеринга.
  • Для каждого запроса отметки времени тип GPUQuerySet.type querySet должен быть "timestamp", а значение queryIndex должно быть меньше значения GPUQuerySet.count.

Примеры

В нашем демонстрационном примере вычислений несколько команд регистрируются через GPUCommandEncoder. Большинство из этих команд происходят от GPUComputePassEncoder, созданного с помощью beginComputePass().

// ...

// Create GPUCommandEncoder to encode commands to issue to the GPU
const commandEncoder = device.createCommandEncoder();

// Initiate render pass
const passEncoder = commandEncoder.beginComputePass();

// Issue commands
passEncoder.setPipeline(computePipeline);
passEncoder.setBindGroup(0, bindGroup);
passEncoder.dispatchWorkgroups(Math.ceil(BUFFER_SIZE / 64));

// End the render pass
passEncoder.end();

// Copy output buffer to staging buffer
commandEncoder.copyBufferToBuffer(
  output,
  0, // Source offset
  stagingBuffer,
  0, // Destination offset
  BUFFER_SIZE,
);

// End frame by passing array of command buffers to command queue for execution
device.queue.submit([commandEncoder.finish()]);

// ...

Спецификации

Спецификация
WebGPU
# dom-gpucommandencoder-begincomputepass

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
beginComputePass
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
предварительная версия 121 Нет 81 Нет 25.0 121
timestampWrites
121В настоящее время поддерживается только на ChromeOS, macOS и Windows.
121В настоящее время поддерживается только на ChromeOS, macOS и Windows.
Нет
107В настоящее время поддерживается только на 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/beginComputePass

Spec-Zone.ru

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