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