diff options
author | Christiaan Janssen <christiaan.janssen@digia.com> | 2013-04-17 16:46:12 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-05-06 14:19:15 +0200 |
commit | 49ef011e33b9ef977679b3d30f883fccea0d8748 (patch) | |
tree | 96a17090cc17ab04796094a10809274e7a1f3944 /src/quick/scenegraph/qsgadaptationlayer.cpp | |
parent | f314fd4327167dd6af88f9b7050b34144d75241d (diff) |
QmlProfiler: SceneGraph profiling
Change-Id: Ide71b330b13fc3816ed191bd9af84e0fce0d9587
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/quick/scenegraph/qsgadaptationlayer.cpp')
-rw-r--r-- | src/quick/scenegraph/qsgadaptationlayer.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/quick/scenegraph/qsgadaptationlayer.cpp b/src/quick/scenegraph/qsgadaptationlayer.cpp index 1d534e3563..3536975e94 100644 --- a/src/quick/scenegraph/qsgadaptationlayer.cpp +++ b/src/quick/scenegraph/qsgadaptationlayer.cpp @@ -48,6 +48,7 @@ #include <QtGui/qguiapplication.h> #include <qdir.h> +#include <private/qqmlprofilerservice_p.h> #include <QElapsedTimer> QT_BEGIN_NAMESPACE @@ -162,7 +163,8 @@ void QSGDistanceFieldGlyphCache::update() return; #ifndef QSG_NO_RENDER_TIMING - if (qsg_render_timing) + bool profileFrames = qsg_render_timing || QQmlProfilerService::enabled; + if (profileFrames) qsg_render_timer.start(); #endif @@ -176,10 +178,10 @@ void QSGDistanceFieldGlyphCache::update() } #ifndef QSG_NO_RENDER_TIMING - int renderTime = 0; + qint64 renderTime = 0; int count = m_pendingGlyphs.size(); - if (qsg_render_timing) - renderTime = qsg_render_timer.elapsed(); + if (profileFrames) + renderTime = qsg_render_timer.nsecsElapsed(); #endif m_pendingGlyphs.reset(); @@ -190,11 +192,18 @@ void QSGDistanceFieldGlyphCache::update() if (qsg_render_timing) { printf(" - glyphs: count=%d, render=%d, store=%d, total=%d\n", count, - renderTime, - (int) qsg_render_timer.elapsed() - renderTime, + int(renderTime/1000000), + (int) qsg_render_timer.elapsed() - int(renderTime/1000000), (int) qsg_render_timer.elapsed()); } + if (QQmlProfilerService::enabled) { + QQmlProfilerService::sceneGraphFrame( + QQmlProfilerService::SceneGraphAdaptationLayerFrame, + count, + renderTime, + qsg_render_timer.nsecsElapsed() - renderTime); + } #endif } |