Класс 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 { Нет, Элемент массива, Униформа, Получение из текстуры, Доступ к изображению шейдера, …, Все } |
| флаги | 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.1/qt3drender-qmemorybarrier.html