GPUQueue
Ограниченная доступность
Эта функция не является базовой, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная: Это экспериментальная технология
Перед использованием в продакшене тщательно проверьте таблицу совместимости с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в рабочих потоках.
Интерфейс GPUQueue API WebGPU управляет выполнением закодированных команд на GPU.
Основной очередь устройства можно получить через свойство GPUDevice.queue.
Свойства экземпляра
Методы экземпляра
-
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