Spec-Zone.ru › Web APIs

GPUDevice

Ограниченное использование

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

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

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

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

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

Интерфейс GPUDevice API WebGPU представляет собой логическое устройство GPU. Это основной интерфейс, через который осуществляется доступ к большинству функций WebGPU.

Объект GPUDevice запрашивается с помощью метода GPUAdapter.requestDevice().

EventTarget GPUDevice

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

Наследует свойства от своего родителя, EventTarget.

features Экспериментальная Только для чтения

Объект GPUSupportedFeatures, описывающий дополнительные возможности, поддерживаемые устройством.

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

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

limits Экспериментальная Только для чтения

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

lost Экспериментальная Только для чтения

Содержит Promise, который остается ожидающим в течение всего срока службы устройства и разрешается с объектом GPUDeviceLostInfo, когда устройство потеряно.

queue Экспериментальная Только для чтения

Возвращает основной GPUQueue для устройства.

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

Наследует методы от своего родителя, EventTarget.

createBindGroup() Экспериментальный

Создаёт GPUBindGroup на основе GPUBindGroupLayout, который определяет набор ресурсов, которые будут связаны вместе в группе, и как эти ресурсы используются в стадиях шейдеров.

createBindGroupLayout() Экспериментальный

Создаёт GPUBindGroupLayout, который определяет структуру и назначение связанных ресурсов GPU, таких как буферы, которые будут использоваться в конвейере, и используется в качестве шаблона при создании GPUBindGroup.

createBuffer() Экспериментальный

Создаёт GPUBuffer, в котором хранятся сырые данные для использования в операциях GPU.

createCommandEncoder() Экспериментальный

Создаёт GPUCommandEncoder, который используется для кодирования команд, которые должны быть отправлены GPU.

createComputePipeline() Экспериментальный

Создаёт GPUComputePipeline, который может управлять стадией вычислительного шейдера и использоваться в GPUComputePassEncoder.

createComputePipelineAsync() Экспериментальный

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

createPipelineLayout() Экспериментальный

Создаёт GPUPipelineLayout, который определяет GPUBindGroupLayouts, используемые конвейером. GPUBindGroups, используемые с конвейером во время кодирования команд, должны иметь совместимые GPUBindGroupLayouts.

createQuerySet() Экспериментальный

Создаёт GPUQuerySet, который можно использовать для записи результатов запросов к проходам, таких как запросы на окклюзию или отметки времени.

createRenderBundleEncoder() Экспериментальный

Создаёт GPURenderBundleEncoder, который можно использовать для предварительной записи наборов команд. Они могут быть повторно использованы в GPURenderPassEncoder с помощью метода executeBundles() столько раз, сколько необходимо.

createRenderPipeline() Экспериментальный

Создаёт GPURenderPipeline, который может управлять вершинными и фрагментными стадиями шейдеров и использоваться в GPURenderPassEncoder или GPURenderBundleEncoder.

createRenderPipelineAsync() Экспериментальный

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

createSampler() Экспериментальный

Создаёт GPUSampler, который управляет тем, как шейдеры преобразуют и фильтруют данные текстурных ресурсов.

createShaderModule() Экспериментальный

Создаёт GPUShaderModule из строки исходного кода WGSL.

createTexture() Экспериментальный

Создаёт GPUTexture, в котором хранятся данные текстуры для использования в операциях рендеринга GPU.

destroy() Экспериментальный

Уничтожает устройство, предотвращая дальнейшие операции с ним.

importExternalTexture() Экспериментальный

Принимает HTMLVideoElement в качестве входных данных и возвращает GPUExternalTexture объект-обёртку, содержащий моментальный снимок видео, который можно использовать в операциях рендеринга GPU.

popErrorScope() Экспериментальный

Выталкивает существующий область видимости ошибок GPU из стека области видимости ошибок и возвращает Promise, который разрешается до объекта (GPUInternalError, GPUOutOfMemoryError или GPUValidationError), описывающего первую ошибку, захваченную в области видимости, или null если ошибка не произошла.

pushErrorScope() Экспериментальный

Добавляет новую область видимости ошибок GPU в стек области видимости ошибок устройства, позволяя захватывать ошибки определённого типа.

События

uncapturederror Экспериментальный

Срабатывает, когда возникает ошибка, которая не была обнаружена областью видимости ошибок GPU, чтобы предоставить способ сообщить об неожиданных ошибках. Известные случаи ошибок должны обрабатываться с использованием pushErrorScope() и popErrorScope().

Примеры

async function init() {
  if (!navigator.gpu) {
    throw Error("WebGPU not supported.");
  }

  const adapter = await navigator.gpu.requestAdapter();
  if (!adapter) {
    throw Error("Couldn't request WebGPU adapter.");
  }

  const device = await adapter.requestDevice();

  const shaderModule = device.createShaderModule({
    code: shaders,
  });

  //...
}

Обратитесь к отдельным страницам членов, указанным выше, и к следующим демонстрационным сайтам для получения гораздо больше примеров использования GPUDevice:

  • Демонстрация базовых вычислений
  • Демонстрация базового рендеринга
  • Примеры WebGPU

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

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

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

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
GPUDevice
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
adapterInfo 132 132 Нет 117 Нет 132 Нет Нет Нет Нет 132
createBindGroup
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createBindGroupLayout
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createBuffer
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createCommandEncoder
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createComputePipeline
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createComputePipelineAsync
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createPipelineLayout
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createQuerySet
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
Нет
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createRenderBundleEncoder
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createRenderPipeline
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createRenderPipelineAsync
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createSampler
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createShaderModule
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превьюВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
превью 121 Нет 81 Нет 25.0 121
createTexture
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121
destroy
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121
features
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121
importExternalTexture
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121
label
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121
limits
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121
lost
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121
popErrorScope
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121
pushErrorScope
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121
queue
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121
uncapturederror_event
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на 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/GPUDevice

Spec-Zone.ru

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