Spec-Zone.ru › Web APIs

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 должно быть меньше, чем предел maxBindGroups GPUDevice ограничение.

Примеры

Примечание: Примеры 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

См. также

  • 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/createPipelineLayout

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API