Spec-Zone.ru › Web APIs

GPURenderPassEncoder: метод end()

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

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

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

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

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

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

Метод end() интерфейса GPURenderPassEncoder завершает запись последовательности команд текущего прохода рендеринга.

Синтаксис

end()

Параметры

Нет.

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

None (Undefined).

Проверка

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

  • Командогенератор GPURenderPassEncoder открыт (т. е. еще не завершен вызовом end()).
  • Нет активного запроса окклюзии (т. е. начатого с помощью beginOcclusionQuery()) для текущего прохода рендеринга.
  • Стек отладки для текущего прохода рендеринга пуст (т. е. нет открытой группы отладки прохода рендеринга, открытой с помощью pushDebugGroup()).
  • Количество команд отрисовки, закодированных в этом проходе рендеринга, меньше или равно свойству maxDrawCount описания GPUCommandEncoder.beginRenderPass().

Примеры

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

// ...

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-gpurenderpassencoder-end

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
end
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
previewВ настоящее время поддерживается только на 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/end

Spec-Zone.ru

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