Spec-Zone.ru › Web APIs

GPUComputePassEncoder

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

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

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

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

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

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

Интерфейс GPUComputePassEncoder API WebGPU кодирует команды, связанные с управлением этапом вычислений (compute shader), выпущенные GPUComputePipeline. Он является частью общей кодировочной активности GPUCommandEncoder.

Вычислительная схема содержит один вычислительный этап, на котором вычислительный шейдер принимает общие данные, обрабатывает их параллельно по указанному количеству рабочих групп, а затем возвращает результат в один или несколько буферов.

Экземпляр объекта GPUComputePassEncoder создаётся с помощью свойства GPUCommandEncoder.beginComputePass().

Свойства экземпляра

label Экспериментально

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

Методы экземпляра

dispatchWorkgroups() Экспериментально

Отправляет конкретную сетку рабочих групп для выполнения работы, выполняемой текущим GPUComputePipeline.

dispatchWorkgroupsIndirect() Экспериментально

Отправляет сетку рабочих групп, определённую параметрами GPUBuffer, для выполнения работы, выполняемой текущим GPUComputePipeline.

end() Экспериментально

Завершает запись текущей последовательности команд вычислительного прохода.

insertDebugMarker() Экспериментально

Помечает определённую точку в ряду закодированных команд меткой.

popDebugGroup() Экспериментально

Завершает группу отладки, которая начинается вызовом pushDebugGroup().

pushDebugGroup() Экспериментально

Начинает группу отладки, которая помечена указанной меткой и будет содержать все последующие закодированные команды до вызова метода popDebugGroup().

setBindGroup() Экспериментально

Устанавливает GPUBindGroup для использования в последующих вычислительных командах для данного индекса.

setPipeline() Экспериментально

Устанавливает GPUComputePipeline для использования в этом вычислительном проходе.

Примеры

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

// ...

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

// Create GPUComputePassEncoder to initiate compute pass
const passEncoder = commandEncoder.beginComputePass();

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

// End the compute 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
# gpucomputepassencoder

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

Настольные Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
GPUComputePassEncoder
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
dispatchWorkgroups
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
dispatchWorkgroupsIndirect
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
end
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
insertDebugMarker
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
label
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
popDebugGroup
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
pushDebugGroup
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
setBindGroup
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
setPipeline
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
writeTimestamp
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
No 121 No 81 No 25.0 121

См. также

  • The WebGPU API

© 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/GPUComputePassEncoder

Spec-Zone.ru

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