Spec-Zone.ru › Web APIs

GPURenderPassEncoder: метод setPipeline()

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

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

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

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

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

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

Метод setPipeline() интерфейса GPURenderPassEncoder устанавливает GPURenderPipeline, который будет использоваться для последующих команд отрисовки.

Синтаксис

setPipeline(pipeline)

Параметры

pipeline

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

Возвращаемое значение

None (Undefined).

Валидация

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

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

Примеры

В нашем демо-примере рендеринга, несколько команд записываются через GPUCommandEncoder. Большинство из этих команд исходят от GPURenderPassEncoder, созданного с помощью GPUCommandEncoder.beginRenderPass(). setPipeline() вызывается в соответствующем месте для установки рендер-пайплайна.

// ...

const renderPipeline = device.createRenderPipeline(pipelineDescriptor);

// Create GPUCommandEncoder to issue commands to the GPU
// Note: render pass descriptor, command encoder, etc. are destroyed after use, fresh one needed for each frame.
const commandEncoder = device.createCommandEncoder();

// Create GPURenderPassDescriptor to tell WebGPU which texture to draw into, then initiate render pass
const renderPassDescriptor = {
  colorAttachments: [
    {
      clearValue: clearColor,
      loadOp: "clear",
      storeOp: "store",
      view: context.getCurrentTexture().createView(),
    },
  ],
};

const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);

// Draw the triangle
passEncoder.setPipeline(renderPipeline);
passEncoder.setVertexBuffer(0, vertexBuffer);
passEncoder.draw(3);

// End the render pass
passEncoder.end();

// End frame by passing array of command buffers to command queue for execution
device.queue.submit([commandEncoder.finish()]);

// ...

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

Спецификация
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.
превьюВ настоящее время поддерживается только на 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/GPURenderPassEncoder/setPipeline

Spec-Zone.ru

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