GPUDevice: createCommandEncoder() метод
Ограниченная доступность
Эта функция не является базовой, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная: Это экспериментальная технология
Перед использованием в производстве тщательно проверьте таблицу совместимости с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Метод createCommandEncoder() интерфейса GPUDevice создаёт GPUCommandEncoder, используемый для кодирования команд, которые должны быть выполнены графическим процессором.
Синтаксис
createCommandEncoder() createCommandEncoder(descriptor)
Параметры
descriptorНеобязательно-
Объект, содержащий следующие свойства:
labelНеобязательно-
Строка, предоставляющая метку, которая может использоваться для идентификации объекта, например, в сообщениях об
GPUErrorили предупреждениях консоли.
Возвращаемое значение
Экземпляр объекта GPUCommandEncoder.
Примеры
В нашем демо-примере рендеринга несколько команд записываются через GPUCommandEncoder, созданный с помощью createCommandEncoder():
// ...
// 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 # dom-gpudevice-createcommandencoder |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
createCommandEncoder |
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/GPUDevice/createCommandEncoder