diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2022-10-10 08:30:40 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2022-11-16 12:55:09 +0200 |
commit | 66cbe2ab7dceccb6570ad4380874f7c1da957bf7 (patch) | |
tree | 0686733533309d8547dd18d5faa70cd202785159 | |
parent | 993a508b62964ab6e1a71dcda44dcbf68e149d4c (diff) |
Scene3DItem: increase number of frames needed to flush pipeline
It appears 2 frames is not always enough. 3 looks to be enough.
The number of frames can now also be controlled by the
QT3D_SCENE3D_FRAMES_FLUSH_COUNT environment variable.
Change-Id: I47a2ff6df47fd4dedeb8bd2aacdb9ef43c4e2a9a
Reviewed-by: Mike Krus <mike.krus@kdab.com>
-rw-r--r-- | src/quick3d/imports/scene3d/scene3ditem.cpp | 8 | ||||
-rw-r--r-- | src/quick3d/imports/scene3d/scene3ditem_p.h | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/quick3d/imports/scene3d/scene3ditem.cpp b/src/quick3d/imports/scene3d/scene3ditem.cpp index 0a5d1f079..ce6251286 100644 --- a/src/quick3d/imports/scene3d/scene3ditem.cpp +++ b/src/quick3d/imports/scene3d/scene3ditem.cpp @@ -200,6 +200,9 @@ private: expression that depends on property updates driven by the Qt 3D simulation loop (FrameAction) will never reavaluates. */ + +qint8 Scene3DItem::ms_framesNeededToFlushPipeline = 3; + Scene3DItem::Scene3DItem(QQuickItem *parent) : QQuickItem(parent) , m_entity(nullptr) @@ -230,6 +233,11 @@ Scene3DItem::Scene3DItem(QQuickItem *parent) // we still won't get ignored by the QtQuick SG when in Underlay mode setWidth(1); setHeight(1); + + const QByteArray framesToFlushCountEnvVar = qgetenv("QT3D_SCENE3D_FRAMES_FLUSH_COUNT"); + if (!framesToFlushCountEnvVar.isEmpty()) { + ms_framesNeededToFlushPipeline = framesToFlushCountEnvVar.toInt(); + } } Scene3DItem::~Scene3DItem() diff --git a/src/quick3d/imports/scene3d/scene3ditem_p.h b/src/quick3d/imports/scene3d/scene3ditem_p.h index 827f6c29d..c2f4d1431 100644 --- a/src/quick3d/imports/scene3d/scene3ditem_p.h +++ b/src/quick3d/imports/scene3d/scene3ditem_p.h @@ -171,7 +171,7 @@ private: QMetaObject::Connection m_windowConnection; qint8 m_framesToRender; - static const qint8 ms_framesNeededToFlushPipeline = 2; + static qint8 ms_framesNeededToFlushPipeline; }; } // Qt3DRender |