Spec-Zone.ru › Web APIs

GPURenderBundleEncoder: метод setPipeline()

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Экспериментально: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости браузеров.

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Примечание: Эта функция доступна в Web Workers.

Метод setPipeline() интерфейса GPURenderBundleEncoder устанавливает GPURenderPipeline для последующих команд рендеринга пакетов.

Примечание: Этот метод функционально идентичен своему эквиваленту в GPURenderPassEncoder — setPipeline().

Синтаксис

setPipeline(pipeline)

Параметры

pipeline

Используемый GPURenderPipeline для последующих команд рендеринга пакетов.

Значение возврата

None (Undefined).

Валидация

При вызове setPipeline() должны быть соблюдены следующие критерии, в противном случае генерируется GPUValidationError, и GPURenderBundleEncoder становится недопустимым:

  • Если GPURenderPipeline записывает в компонент глубины атрибута глубины/схемы, depthReadOnly (как указано в описателе исходного вызова GPUCommandEncoder.beginRenderPass()) является true.
  • Если GPURenderPipeline записывает в компонент схемы атрибута глубины/схемы, stencilReadOnly (как указано в описателе исходного вызова GPUCommandEncoder.beginRenderPass()) является true.

Примеры

function recordRenderPass(passEncoder) {
  if (settings.dynamicOffsets) {
    passEncoder.setPipeline(dynamicPipeline);
  } else {
    passEncoder.setPipeline(pipeline);
  }
  passEncoder.setVertexBuffer(0, vertexBuffer);
  passEncoder.setBindGroup(0, timeBindGroup);
  const dynamicOffsets = [0];
  for (let i = 0; i < numTriangles; ++i) {
    if (settings.dynamicOffsets) {
      dynamicOffsets[0] = i * alignedUniformBytes;
      passEncoder.setBindGroup(1, dynamicBindGroup, dynamicOffsets);
    } else {
      passEncoder.setBindGroup(1, bindGroups[i]);
    }
    passEncoder.draw(3, 1, 0, 0);
  }
}

Вышеприведенный фрагмент взят из примера Animometer сэмплов WebGPU.

Спецификации

Спецификация
WebGPU
# dom-gpurendercommandsmixin-setpipeline

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
setPipeline
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
preview 121 Нет 81 Нет 25.0 121

См. также

  • The 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/GPURenderBundleEncoder/setPipeline

Spec-Zone.ru

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