GPURenderPipeline: метод getBindGroupLayout()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная: Это экспериментальная технология
Перед использованием в производстве тщательно проверьте таблицу совместимости браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в рабочих процессах.
Метод getBindGroupLayout() интерфейса GPURenderPipeline возвращает объект GPUBindGroupLayout конвейера с заданным индексом (т. е. включённый в исходный вызов GPUDevice.createRenderPipeline() или GPUDevice.createRenderPipelineAsync() с макетом конвейера).
Если GPURenderPipeline был создан с layout: "auto", этот метод является единственным способом получения GPUBindGroupLayout сгенерированных конвейером.
Синтаксис
getBindGroupLayout(index)
Параметры
index-
Число, представляющее индекс
GPUBindGroupLayoutдля возврата.
Возвращаемое значение
Экземпляр объекта GPUBindGroupLayout.
Валидация
При вызове getBindGroupLayout() должны быть соблюдены следующие критерии, в противном случае генерируется GPUValidationError, а возвращается невалидный объект GPUBindGroupLayout:
-
indexменьше количества объектовGPUBindGroupLayout, используемых в макете конвейера.
Примеры
Примечание: Вы можете увидеть полные рабочие примеры с getBindGroupLayout() в действии в примерах WebGPU.
// ...
// Create a render pipeline using layout: "auto" to automatically generate
// appropriate bind group layouts
const fullscreenQuadPipeline = device.createRenderPipeline({
layout: "auto",
vertex: {
module: device.createShaderModule({
code: fullscreenTexturedQuadWGSL,
}),
entryPoint: "vert_main",
},
fragment: {
module: device.createShaderModule({
code: fullscreenTexturedQuadWGSL,
}),
entryPoint: "frag_main",
targets: [
{
format: presentationFormat,
},
],
},
primitive: {
topology: "triangle-list",
},
});
// ...
// Create a bind group with the auto-generated layout from the render pipeline
const showResultBindGroup = device.createBindGroup({
layout: fullscreenQuadPipeline.getBindGroupLayout(0),
entries: [
{
binding: 0,
resource: sampler,
},
{
binding: 1,
resource: textures[1].createView(),
},
],
});
// ...
Спецификации
| Спецификация |
|---|
| WebGPU # dom-gpupipelinebase-getbindgrouplayout |
Совместимость браузеров
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
getBindGroupLayout |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только на Linux и Windows. |
99В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
preview | 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/getBindGroupLayout