GPURenderPipeline
Ограниченное использование
Эта функция не является базовой, так как она не работает во всех распространённых браузерах.
Экспериментальная: Это экспериментальная технология.
Перед использованием в производстве внимательно изучите таблицу совместимости браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Интерфейс GPURenderPipeline из API WebGPU представляет собой конвейер, который управляет стадиями шейдеров вершин и фрагментов, и может использоваться в GPURenderPassEncoder или GPURenderBundleEncoder.
Экземпляр объекта GPURenderPipeline может быть создан с помощью методов GPUDevice.createRenderPipeline() или GPUDevice.createRenderPipelineAsync().
Свойства экземпляра
Методы экземпляра
-
getBindGroupLayout()Экспериментальная -
Возвращает объект
GPUBindGroupLayoutконвейера с заданным индексом (т.е. включён в макет конвейера исходного вызоваGPUDevice.createRenderPipeline()илиGPUDevice.createRenderPipelineAsync()).
Примеры
Примечание: В примерах WebGPU представлено множество других примеров.
Базовый пример
Наш базовый демонстрационный пример рендеринга предоставляет пример создания описателя конвейера рендеринга, который затем используется для создания GPURenderPipeline с помощью вызова createRenderPipeline().
// ...
const vertexBuffers = [
{
attributes: [
{
shaderLocation: 0, // position
offset: 0,
format: "float32x4",
},
{
shaderLocation: 1, // color
offset: 16,
format: "float32x4",
},
],
arrayStride: 32,
stepMode: "vertex",
},
];
const pipelineDescriptor = {
vertex: {
module: shaderModule,
entryPoint: "vertex_main",
buffers: vertexBuffers,
},
fragment: {
module: shaderModule,
entryPoint: "fragment_main",
targets: [
{
format: navigator.gpu.getPreferredCanvasFormat(),
},
],
},
primitive: {
topology: "triangle-list",
},
layout: "auto",
};
const renderPipeline = device.createRenderPipeline(pipelineDescriptor);
// ...
Спецификации
| Спецификация |
|---|
| WebGPU # gpurenderpipeline |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
GPURenderPipeline |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
предварительная версияВ настоящее время поддерживается только на Linux и Windows. |
99В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
предварительная версия | 121 | Нет | 81 | Нет | 25.0 | 121 |
getBindGroupLayout |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
предварительная версияВ настоящее время поддерживается только на Linux и Windows. |
99В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
предварительная версия | 121 | Нет | 81 | Нет | 25.0 | 121 |
label |
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/GPURenderPipeline