IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

QMemoryBarrier Class

Class to emplace a memory barrier.

This class was introduced in Qt 5.9.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

QMemoryBarrier Class

  • Header: QMemoryBarrier

  • Since: Qt 5.9

  • CMake:

    find_package(Qt6 REQUIRED COMPONENTS 3drender)

    target_link_libraries(mytarget PRIVATE Qt6::3drender)

  • qmake: QT += 3drender

  • Inherited By:

  • Instantiated By: qml-qt3d-render-memorybarrier.xml

  • Inherits: Qt3DRender::QFrameGraphNode

  • Group: QMemoryBarrier is part of framegraph

Detailed Description

A Qt3DRender::QMemoryBarrier FrameGraph node is used to emplace a specific memory barrier at a specific time of the rendering. This is required to properly synchronize drawing and compute commands on the GPU.

The barrier defines the ordering of memory operations issued by a prior command. This means that if command1 is manipulating a buffer that is to be used as a vertex attribute buffer in a following command2, then the memory barrier should be placed after command1 and setting the appropriate barrier type for vertex attribute buffer.

When a QMemoryBarrier node is found in a FrameGraph branch, the barrier will be enforced prior to any draw or compute command even if these are defined deeper in the branch.

For OpenGL rendering, this page gives more info about the Memory Model

Member Type Documentation

 

enum QMemoryBarrier::Operation

flags QMemoryBarrier::Operations

This enum type describes types of buffer to be cleared.

Constant

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.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+