QMemoryBarrier 类
类 Qt3DRender::QMemoryBarrier用于在特定时间点推入内存屏障的类。 更多...
头文件 | #include <QMemoryBarrier> |
CMake | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake | QT += 3drender |
通过实例化 | MemoryBarrier |
继承 | Qt3DRender::QFrameGraphNode |
公共类型
enum | Operation { None, ElementArray, Uniform, TextureFetch, ShaderImageAccess, …, All } |
flags | Operations |
详细描述
Qt3DRender::QMemoryBarrier FrameGraph 节点用于在渲染的特定时间点推入特定的内存屏障。 这是为了在 GPU 上正确同步绘制和计算命令。
该屏蔽定义了先前命令发出的内存操作的顺序。 这意味着如果 command1 正在操作一个将要作为后续 command2 中顶点属性缓冲区的缓冲区,那么应该在 command1 之后放置内存屏障,并为顶点属性缓冲区设置适当的屏蔽类型。
当一个 QMemoryBarrier 节点在 FrameGraph 分支中时,该屏蔽将强制执行,即使这些命令在该分支中定义得更深。
对于 OpenGL 渲染,此页面提供了有关 内存模型 的更多信息
成员类型文档
enum QMemoryBarrier::Operation
flags 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 |
The Operations type is a typedef for QFlags<Operation>. It stores an OR combination of Operation values.
© 2024 The Qt Company Ltd. 包含在本处的文档贡献是各自所有者的版权。 本文档根据自由软件基金会发布的 GNU Free Documentation License 1.3 版本 的条款提供许可。 Qt 及各自标志是 The Qt Company Ltd. 在芬兰和/或全世界其他国家的商标。所有其他商标均为其各自所有者的财产。