PySide6.Qt3DRender.Qt3DRender.QMemoryBarrier

class QMemoryBarrier

Class to emplace a memory barrier. More

Inheritance diagram of PySide6.Qt3DRender.Qt3DRender.QMemoryBarrier

Synopsis

Methods

Slots

Signals

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description

A 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

class Operation

(inherits enum.Flag) This enum type describes types of buffer to be cleared.

Constant

Description

Qt3DRender.QMemoryBarrier.None

Qt3DRender.QMemoryBarrier.ElementArray

Qt3DRender.QMemoryBarrier.Uniform

Qt3DRender.QMemoryBarrier.TextureFetch

Qt3DRender.QMemoryBarrier.ShaderImageAccess

Qt3DRender.QMemoryBarrier.Command

Qt3DRender.QMemoryBarrier.PixelBuffer

Qt3DRender.QMemoryBarrier.TextureUpdate

Qt3DRender.QMemoryBarrier.BufferUpdate

Qt3DRender.QMemoryBarrier.FrameBuffer

Qt3DRender.QMemoryBarrier.TransformFeedback

Qt3DRender.QMemoryBarrier.AtomicCounter

Qt3DRender.QMemoryBarrier.ShaderStorage

Qt3DRender.QMemoryBarrier.QueryBuffer

Qt3DRender.QMemoryBarrier.VertexAttributeArray

Qt3DRender.QMemoryBarrier.All

__init__([parent=None])
Parameters:

parentQNode

setWaitOperations(operations)
Parameters:

operations – Combination of Operation

waitOperations()
Return type:

Combination of Operation

waitOperationsChanged(barrierTypes)
Parameters:

barrierTypes – Combination of Operation