Spec-Zone.ru › Web APIs

GPUQueue

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

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

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

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

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

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

Интерфейс GPUQueue API WebGPU управляет выполнением закодированных команд на GPU.

Основной очередь устройства можно получить через свойство GPUDevice.queue.

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

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

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

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

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

Копирует снимок, сделанный со исходного изображения, видео или холста, в заданную GPUTexture.

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

Возвращает Promise, который разрешается, когда вся работа, отправленная на GPU через эту GPUQueue в момент вызова метода, была обработана.

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

Планирует выполнение буферов команд, представленных одним или несколькими объектами GPUCommandBuffer, GPU.

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

Записывает предоставленный источник данных в заданный GPUBuffer.

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

Записывает предоставленный источник данных в заданный GPUTexture.

Примеры

В нашем основном демо-примере рендеринга мы определяем некоторые вершинные данные в Float32Array, которые мы будем использовать для отрисовки треугольника:

const vertices = new Float32Array([
  0.0, 0.6, 0, 1, 1, 0, 0, 1, -0.5, -0.6, 0, 1, 0, 1, 0, 1, 0.5, -0.6, 0, 1, 0,
  0, 1, 1,
]);

Для использования этих данных в конвейере рендеринга нам необходимо поместить их в GPUBuffer. Сначала мы создадим буфер:

const vertexBuffer = device.createBuffer({
  size: vertices.byteLength, // make it big enough to store vertices in
  usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
});

Чтобы поместить данные в буфер, мы можем использовать функцию writeBuffer(), которая позволяет агенту пользователя определить наиболее эффективный способ копирования данных:

device.queue.writeBuffer(vertexBuffer, 0, vertices, 0, vertices.length);

Позже набор команд кодируется в GPUCommandBuffer с помощью метода GPUCommandEncoder.finish(). Затем буфер команд передается в очередь с помощью вызова submit(), готовый к обработке GPU.

device.queue.submit([commandEncoder.finish()]);

Примечание: Изучите примеры WebGPU, чтобы найти дополнительные примеры работы с очередью.

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

Спецификация
WebGPU
# gpu-queue

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

Рабочий стол Мобильный телефон
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
GPUQueue
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
copyExternalImageToTexture
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
label
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
onSubmittedWorkDone
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
Нет
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
submit
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
writeBuffer
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
writeTexture
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/GPUQueue

Spec-Zone.ru

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