Spec-Zone.ru › Web APIs

GPUDevice: метод createBuffer()

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

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

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

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

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

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

Метод createBuffer() интерфейса GPUDevice создаёт GPUBuffer, в котором хранятся исходные данные для использования в операциях с графическим процессором.

Синтаксис

createBuffer(descriptor)

Параметры

descriptor

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

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

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

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

Булево значение. Если установлено в true, буфер будет отображён при создании, что означает, что вы можете установить значения внутри буфера немедленно, вызвав GPUBuffer.getMappedRange(). Значение по умолчанию - false.

Обратите внимание, что допустимо установить mappedAtCreation: true, чтобы вы могли задать начальные данные буфера, даже если флаги использования GPUBufferUsage.MAP_READ или GPUBufferUsage.MAP_WRITE не установлены.

size

Число, представляющее размер буфера в байтах.

usage

Битовые флаги, представляющие разрешённые способы использования GPUBuffer. Возможные значения находятся в таблице значений GPUBuffer.usage.

Обратите внимание, что несколько возможных способов использования можно указать, разделив значения символами «|», например:

usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.MAP_WRITE;

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

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

Валидация

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

  • Указан допустимый usage.
  • Указан GPUBufferUsage.MAP_READ, и не указаны дополнительные флаги, кроме GPUBufferUsage.COPY_DST.
  • Указан GPUBufferUsage.MAP_WRITE, и не указаны дополнительные флаги, кроме GPUBufferUsage.COPY_SRC.
  • Указан mappedAtCreation: true, и указанный size кратен 4.

Примечание: Если выделение буфера не удаётся без каких-либо особых побочных эффектов, генерируется объект GPUOutOfMemoryError.

Примеры

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

const output = device.createBuffer({
  size: BUFFER_SIZE,
  usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC,
});

const stagingBuffer = device.createBuffer({
  size: BUFFER_SIZE,
  usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST,
});

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

Спецификация
WebGPU
# dom-gpudevice-createbuffer

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

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

Spec-Zone.ru

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