QMemoryBarrier 类

Qt3DRender::QMemoryBarrier

用于在特定时间点推入内存屏障的类。 更多...

头文件 #include <QMemoryBarrier>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmakeQT += 3drender
通过实例化 MemoryBarrier
继承 Qt3DRender::QFrameGraphNode

公共类型

enumOperation { None, ElementArray, Uniform, TextureFetch, ShaderImageAccess, …, All }
flagsOperations

详细描述

Qt3DRender::QMemoryBarrier FrameGraph 节点用于在渲染的特定时间点推入特定的内存屏障。 这是为了在 GPU 上正确同步绘制和计算命令。

该屏蔽定义了先前命令发出的内存操作的顺序。 这意味着如果 command1 正在操作一个将要作为后续 command2 中顶点属性缓冲区的缓冲区,那么应该在 command1 之后放置内存屏障,并为顶点属性缓冲区设置适当的屏蔽类型。

当一个 QMemoryBarrier 节点在 FrameGraph 分支中时,该屏蔽将强制执行,即使这些命令在该分支中定义得更深。

对于 OpenGL 渲染,此页面提供了有关 内存模型 的更多信息

成员类型文档

enum QMemoryBarrier::Operation
flags QMemoryBarrier::Operations

此枚举类型描述了要清除的缓冲区类型。

常量
Qt3DRender::QMemoryBarrier::None0
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::All0xFFFFFFFF

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. 在芬兰和/或全世界其他国家的商标。所有其他商标均为其各自所有者的财产。