QMemoryBarrier 類

class Qt3DRender ::QMemoryBarrier

用於安放內存屏障的類。 更多...

頭: #include <QMemoryBarrier>
qmake: QT += 3drender
Since: Qt 5.9
實例化: MemoryBarrier
繼承: Qt3DRender::QFrameGraphNode

該類在 Qt 5.9 引入。

公共類型

enum 操作 { None, ElementArray, Uniform, TextureFetch, ShaderImageAccess, …, All }
flags Operations

詳細描述

A Qt3DRender::QMemoryBarrier FrameGraph 節點用於在特定渲染時,安放特定內存屏障。這要求在 GPU 正確同步繪製和計算命令。

屏障定義由先前命令,發齣的內存操作次序。這意味著,若 command1 正操縱將緊跟 command2 之後用作頂點屬性緩衝的緩衝,那麼內存屏障應放置在 command1 之後並為頂點屬性緩衝設置閤適屏障類型。

當在 FrameGraph 分支下找到 QMemoryBarrier 節點時,屏障將在任何繪製 (或計算命令) 前實施,即使定義這些是在分支下更深處。

對於 OpenGL 渲染,此頁給齣更多信息關於 內存模型

成員類型文檔編製

enum QMemoryBarrier:: 操作
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

Operations 類型是 typedef 對於 QFlags <Operation>。它存儲 Operation 值的 OR 組閤。