summaryrefslogtreecommitdiffstats
path: root/src/core/aspects
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2020-01-24 11:08:48 +0000
committerMike Krus <mike.krus@kdab.com>2020-01-27 07:37:05 +0000
commit4cd35e87b63d2ff4bc4ee88b6080f812de45d239 (patch)
tree500b6531db69abef5050ab61aa41410cf3930cf4 /src/core/aspects
parent7c1894cdf50b646a8733bf08d0b21a042aa147e6 (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.pri2
-rw-r--r--src/core/aspects/qabstractaspect.cpp7
-rw-r--r--src/core/aspects/qabstractaspect_p.h3
-rw-r--r--src/core/aspects/qaspectmanager.cpp17
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