class QWaitFence#

FrameGraphNode used to wait for a fence in the graphics command stream to become signaled. More

Inheritance diagram of PySide6.Qt3DRender.Qt3DRender.QWaitFence

Synopsis#

Properties#

Methods#

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#

Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.

QWaitFence is a FrameGraph node that will force to wait for it to become signaled before subsequent commands are inserted into the command stream. It can then be used in conjunction with QSetFence and contains properties to configure how long it should wait and whether it should block on the CPU side.

Note

Qt 3D uploads GPU resources (Texture, Shaders, Buffers) before issuing draw calls.

class HandleType#

Note

Properties can be used directly when from __feature__ import true_property is used or via accessor functions otherwise.

property handleᅟ: object#

Holds the underlying fence handle wrapped in a QVariant.

Access functions:
property handleTypeᅟ: Qt3DRender.QWaitFence.HandleType#

Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.

Access functions:
property timeoutᅟ: int#

Specifies the maximum amount of time in nanoseconds to wait for the fence to become signaled.

Access functions:
property waitOnCPUᅟ: bool#

Specifies whether the CPU should be block while waiting for the fence to become signaled. This is false by default.

Access functions:
__init__([parent=None])#
Parameters:

parentQNode

handle()#
Return type:

object

See also

setHandle()

Getter of property handleᅟ .

handleChanged(handle)#
Parameters:

handle – object

Notification signal of property handleᅟ .

handleType()#
Return type:

HandleType

See also

setHandleType()

Getter of property handleTypeᅟ .

handleTypeChanged(handleType)#
Parameters:

handleTypeHandleType

Notification signal of property handleTypeᅟ .

setHandle(handle)#
Parameters:

handle – object

See also

handle()

Setter of property handleᅟ .

setHandleType(type)#
Parameters:

typeHandleType

See also

handleType()

Setter of property handleTypeᅟ .

setTimeout(timeout)#
Parameters:

timeout – int

See also

timeout()

Setter of property timeoutᅟ .

setWaitOnCPU(waitOnCPU)#
Parameters:

waitOnCPU – bool

See also

waitOnCPU()

Setter of property waitOnCPUᅟ .

timeout()#
Return type:

int

See also

setTimeout()

Getter of property timeoutᅟ .

timeoutChanged(timeoutChanged)#
Parameters:

timeoutChanged – int

Notification signal of property timeoutᅟ .

waitOnCPU()#
Return type:

bool

See also

setWaitOnCPU()

Getter of property waitOnCPUᅟ .

waitOnCPUChanged(waitOnCPU)#
Parameters:

waitOnCPU – bool

Notification signal of property waitOnCPUᅟ .