GPUDevice: метод createPipelineLayout()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментально: Это экспериментальная технология
Перед использованием в продакшене тщательно проверьте таблицу совместимости с браузерами в разделе Совместимость с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Метод createPipelineLayout() интерфейса GPUDevice создаёт GPUPipelineLayout, определяющий GPUBindGroupLayout, используемые в конвейере. GPUBindGroup, используемые с конвейером во время кодирования команд, должны иметь совместимые GPUBindGroupLayout.
Синтаксис
createPipelineLayout(descriptor)
Параметры
descriptor-
Объект, содержащий следующие свойства:
bindGroupLayouts-
Массив объектов
GPUBindGroupLayout(которые в свою очередь создаются с помощью вызововGPUDevice.createBindGroupLayout()). Каждый соответствует атрибуту@groupв коде шейдера, содержащемся вGPUShaderModule, используемом в связанном конвейере. labelНеобязательно-
Строка, предоставляющая метку, которая может использоваться для идентификации объекта, например, в сообщениях
GPUErrorили предупреждениях консоли.
Возвращаемое значение
Экземпляр объекта GPUPipelineLayout.
Валидация
При вызове createPipelineLayout() должны быть соблюдены следующие критерии, в противном случае генерируется GPUValidationError, и возвращается невалидный объект GPUPipelineLayout:
- Объекты
GPUBindGroupLayoutвbindGroupLayoutsдолжны быть валидными. - Количество объектов
GPUBindGroupLayoutвbindGroupLayoutsдолжно быть меньше, чем пределmaxBindGroupsGPUDeviceограничение.
Примеры
Примечание: Примеры WebGPU содержат множество других примеров.
Несколько layouts для групп связей, группы связей и layout конвейера
Следующий фрагмент:
- Создаёт
GPUBindGroupLayout, описывающий связывание с буфером, текстурой и сапплером. - Создаёт
GPUPipelineLayout, основанный наGPUBindGroupLayout.
// ...
const bindGroupLayout = device.createBindGroupLayout({
entries: [
{
binding: 0,
visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,
buffer: {},
},
{
binding: 1,
visibility: GPUShaderStage.FRAGMENT,
texture: {},
},
{
binding: 2,
visibility: GPUShaderStage.FRAGMENT,
sampler: {},
},
],
});
const pipelineLayout = device.createPipelineLayout({
bindGroupLayouts: [bindGroupLayout],
});
// ...
Спецификации
| Спецификация |
|---|
| WebGPU # dom-gpudevice-createpipelinelayout |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
createPipelineLayout |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
превьюВ настоящее время поддерживается только на Linux и Windows. |
99В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
См. также
© 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/createPipelineLayout