Spec-Zone.ru › Web APIs

GPUCommandEncoder

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

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

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

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

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

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

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

Экземпляр объекта GPUCommandEncoder создаётся через свойство GPUDevice.createCommandEncoder().

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

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

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

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

beginComputePass() Экспериментальная

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

beginRenderPass() Экспериментальная

Начинает кодирование прохода отрисовки, возвращая GPURenderPassEncoder, который может быть использован для управления отрисовкой.

clearBuffer() Экспериментальная

Кодирует команду, которая заполняет область GPUBuffer нулями.

copyBufferToBuffer() Экспериментальная

Кодирует команду, которая копирует данные из одного GPUBuffer в другой.

copyBufferToTexture() Экспериментальная

Кодирует команду, которая копирует данные из GPUBuffer в GPUTexture.

copyTextureToBuffer() Экспериментальная

Кодирует команду, которая копирует данные из GPUTexture в GPUBuffer.

copyTextureToTexture() Экспериментальная

Кодирует команду, которая копирует данные из одного GPUTexture в другой.

finish() Экспериментальная

Завершает запись последовательности команд, закодированных в этом GPUCommandEncoder, возвращая соответствующий GPUCommandBuffer.

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

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

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

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

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

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

resolveQuerySet() Экспериментальная

Кодирует команду, которая разрешает GPUQuerySet, копируя результаты в указанный GPUBuffer.

writeTimestamp() Нестандартный Устаревший

Кодирует команду, которая записывает отметку времени в GPUQuerySet после выполнения предыдущих команд, записанных в ту же очередь GPUCommandBuffer, графическим процессором.

Примеры

В нашем демо базовой отрисовки несколько команд записываются через GPUCommandEncoder:

// ...

// Create GPUCommandEncoder
const commandEncoder = device.createCommandEncoder();

// Create GPURenderPassDescriptor to tell WebGPU which texture to draw into, then initiate render pass

const renderPassDescriptor = {
  colorAttachments: [
    {
      clearValue: clearColor,
      loadOp: "clear",
      storeOp: "store",
      view: context.getCurrentTexture().createView(),
    },
  ],
};

const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);

// Draw a triangle

passEncoder.setPipeline(renderPipeline);
passEncoder.setVertexBuffer(0, vertexBuffer);
passEncoder.draw(3);

// End the render pass

passEncoder.end();

// ...

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

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

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

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

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

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

Настольный Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
GPUCommandEncoder
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
beginComputePass
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
beginRenderPass
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
clearBuffer
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
copyBufferToBuffer
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
copyBufferToTexture
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
copyTextureToBuffer
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
copyTextureToTexture
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
113В настоящее время поддерживается только в ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только в Linux и Windows.
99В настоящее время поддерживается только в ChromeOS, macOS и Windows.
preview 121 No 81 No 25.0 121
finish
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
resolveQuerySet
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–121 113–121
предварительный просмотрВ настоящее время поддерживается только в Linux и Windows.
99–107 Нет Нет Нет Нет Нет Нет Нет

См. также

  • 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/GPUCommandEncoder

Spec-Zone.ru

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