diff options
author | Mike Krus <mike.krus@kdab.com> | 2020-01-24 11:08:48 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2020-01-27 07:37:05 +0000 |
commit | 4cd35e87b63d2ff4bc4ee88b6080f812de45d239 (patch) | |
tree | 500b6531db69abef5050ab61aa41410cf3930cf4 /src/core/aspects | |
parent | 7c1894cdf50b646a8733bf08d0b21a042aa147e6 (diff) |
Clean up tracing code
- Removed some old optional timing code.
- Separated jobsDone into 2 parts since, on single threaded rendering
mode (ie macOS), the render aspect blocks until the next vsync which
confuses tracing
Change-Id: Icb641e3f8079da2cb9af0416b0f7c4dc4dd36c3c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/core/aspects')
-rw-r--r-- | src/core/aspects/aspects.pri | 2 | ||||
-rw-r--r-- | src/core/aspects/qabstractaspect.cpp | 7 | ||||
-rw-r--r-- | src/core/aspects/qabstractaspect_p.h | 3 | ||||
-rw-r--r-- | src/core/aspects/qaspectmanager.cpp | 17 |
4 files changed, 12 insertions, 17 deletions
diff --git a/src/core/aspects/aspects.pri b/src/core/aspects/aspects.pri index 068f74389..268a2fc37 100644 --- a/src/core/aspects/aspects.pri +++ b/src/core/aspects/aspects.pri @@ -1,5 +1,3 @@ -#DEFINES += QT3D_CORE_JOB_TIMING - SOURCES += \ $$PWD/qabstractaspect.cpp \ $$PWD/qaspectengine.cpp \ diff --git a/src/core/aspects/qabstractaspect.cpp b/src/core/aspects/qabstractaspect.cpp index a2aed732b..824434ce6 100644 --- a/src/core/aspects/qabstractaspect.cpp +++ b/src/core/aspects/qabstractaspect.cpp @@ -508,9 +508,12 @@ QVector<QAspectJobPtr> QAbstractAspectPrivate::jobsToExecute(qint64 time) return res; } -void QAbstractAspectPrivate::jobsDone(QAspectManager *manager) +void QAbstractAspectPrivate::jobsDone() +{ +} + +void QAbstractAspectPrivate::frameDone() { - Q_UNUSED(manager) } /*! diff --git a/src/core/aspects/qabstractaspect_p.h b/src/core/aspects/qabstractaspect_p.h index 9435f2bc6..dd13ac5bf 100644 --- a/src/core/aspects/qabstractaspect_p.h +++ b/src/core/aspects/qabstractaspect_p.h @@ -127,7 +127,8 @@ public: QAbstractAspectJobManager *jobManager() const; QVector<QAspectJobPtr> jobsToExecute(qint64 time) override; - void jobsDone(Qt3DCore::QAspectManager *manager) override; + void jobsDone() override; // called when all the jobs are completed + void frameDone() override; // called when frame is completed (after the jobs), safe to wait until next frame here QBackendNode *createBackendNode(const NodeTreeChange &change) const; void clearBackendNode(const NodeTreeChange &change) const; diff --git a/src/core/aspects/qaspectmanager.cpp b/src/core/aspects/qaspectmanager.cpp index 662860db2..f0dc366b2 100644 --- a/src/core/aspects/qaspectmanager.cpp +++ b/src/core/aspects/qaspectmanager.cpp @@ -68,10 +68,6 @@ #include <QtCore/QCoreApplication> #include <QtCore/QAbstractAnimation> -#if defined(QT3D_CORE_JOB_TIMING) -#include <QElapsedTimer> -#endif - QT_BEGIN_NAMESPACE namespace Qt3DCore { @@ -496,7 +492,7 @@ void QAspectManager::processFrame() // without any such data race. { // scope for QTaskLogger - QTaskLogger logger(m_serviceLocator->systemInformation(), 4096, 0); + QTaskLogger logger(m_serviceLocator->systemInformation(), 4096, 0, QTaskLogger::AspectJob); // Tell the NodePostConstructorInit to process any pending nodes which will add them to our list of // tree changes @@ -541,14 +537,11 @@ void QAspectManager::processFrame() // For each Aspect // Ask them to launch set of jobs for the current frame // Updates matrices, bounding volumes, render bins ... -#if defined(QT3D_CORE_JOB_TIMING) - QElapsedTimer timer; - timer.start(); -#endif m_jobsInLastFrame = m_scheduler->scheduleAndWaitForFrameAspectJobs(t); -#if defined(QT3D_CORE_JOB_TIMING) - qDebug() << "Jobs took" << timer.nsecsElapsed() / 1.0e6; -#endif + + // Tell the aspect the frame is complete (except rendering) + for (QAbstractAspect *aspect : qAsConst(m_aspects)) + QAbstractAspectPrivate::get(aspect)->frameDone(); } } // namespace Qt3DCore |