Класс QMemoryBarrier
класс Qt3DRender::QMemoryBarrierКласс для размещения барьера памяти. Подробнее...
| Заголовок: | #include <QMemoryBarrier> |
| CMake: | find_package(Qt6 COMPONENTS 3drender REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| С момента: | Qt 5.9 |
| Инициализируется: | MemoryBarrier |
| Наследует: | Qt3DRender::QFrameGraphNode |
Общедоступные типы
| Перечисление | Operation { None, ElementArray, Uniform, TextureFetch, ShaderImageAccess, …, All } |
| Флаги | Operations |
Подробное описание
Узел Qt3DRender::QMemoryBarrier FrameGraph используется для размещения определенного барьера памяти в определенное время рендеринга. Это необходимо для правильной синхронизации команд отрисовки и вычислений на графическом процессоре.
Барьер определяет порядок операций с памятью, выполненных предыдущей командой. Это означает, что если команда1 манипулирует буфером, который должен использоваться как буфер атрибутов вершин в последующей команде2, то барьер памяти должен быть размещён после команды1 и установить соответствующий тип барьера для буфера атрибутов вершин.
Когда узел QMemoryBarrier находится в ветви FrameGraph, барьер будет применён до любой команды отрисовки или вычисления, даже если эти команды определены глубже в ветви.
Для рендеринга OpenGL на этой странице приведена дополнительная информация о модели памяти
Документация по типам членов
перечисление QMemoryBarrier::Operationфлаги QMemoryBarrier::Operations
Это перечисление описывает типы буферов, которые нужно очистить.
| Постоянная | Значение |
|---|---|
Qt3DRender::QMemoryBarrier::None |
0 |
Qt3DRender::QMemoryBarrier::ElementArray |
(1 << 1) |
Qt3DRender::QMemoryBarrier::Uniform |
(1 << 2) |
Qt3DRender::QMemoryBarrier::TextureFetch |
(1 << 3) |
Qt3DRender::QMemoryBarrier::ShaderImageAccess |
(1 << 4) |
Qt3DRender::QMemoryBarrier::Command |
(1 << 5) |
Qt3DRender::QMemoryBarrier::PixelBuffer |
(1 << 6) |
Qt3DRender::QMemoryBarrier::TextureUpdate |
(1 << 7) |
Qt3DRender::QMemoryBarrier::BufferUpdate |
(1 << 8) |
Qt3DRender::QMemoryBarrier::FrameBuffer |
(1 << 9) |
Qt3DRender::QMemoryBarrier::TransformFeedback |
(1 << 10) |
Qt3DRender::QMemoryBarrier::AtomicCounter |
(1 << 11) |
Qt3DRender::QMemoryBarrier::ShaderStorage |
(1 << 12) |
Qt3DRender::QMemoryBarrier::QueryBuffer |
(1 << 13) |
Qt3DRender::QMemoryBarrier::VertexAttributeArray |
(1 << 0) |
Qt3DRender::QMemoryBarrier::All |
0xFFFFFFFF |
Тип Operations — это псевдоним для QFlags<Operation>. Он хранит логическое ИЛИ сочетание значений Operation.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt3drender-qmemorybarrier.html