diff options
author | Gunnar Sletta <gunnar.sletta@digia.com> | 2013-01-30 11:13:09 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-01-30 11:26:32 +0100 |
commit | 3e3c59b2c05463eea9a9ad99125aac909e70a996 (patch) | |
tree | 167c3bb8c5d2849252feceaba1ad401cda22d7e7 /src/quick/scenegraph/coreapi/qsgrenderer.cpp | |
parent | f814eb831a8fb3d7eb958b72142ab4979ed76599 (diff) |
Added to QML_RENDERER_TIMING logic to capture most render bottlenecks.
The typical bottlenecks during rendering are usually compiling
shader programs, uploading textures and preparing glyphs,
so add profiling data around them.
Change-Id: I9c330a0f6b769836d303a035b2c0dce832842aec
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Diffstat (limited to 'src/quick/scenegraph/coreapi/qsgrenderer.cpp')
-rw-r--r-- | src/quick/scenegraph/coreapi/qsgrenderer.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgrenderer.cpp b/src/quick/scenegraph/coreapi/qsgrenderer.cpp index 6f9d380eb5..02eec70952 100644 --- a/src/quick/scenegraph/coreapi/qsgrenderer.cpp +++ b/src/quick/scenegraph/coreapi/qsgrenderer.cpp @@ -60,8 +60,7 @@ QT_BEGIN_NAMESPACE -#define QSG_RENDERER_TIMING -#ifdef QSG_RENDERER_TIMING +#ifndef QSG_NO_RENDERER_TIMING static bool qsg_render_timing = !qgetenv("QML_RENDERER_TIMING").isEmpty(); static QTime frameTimer; static int preprocessTime; @@ -237,7 +236,7 @@ void QSGRenderer::renderScene(const QSGBindable &bindable) m_is_rendering = true; -#ifdef QSG_RENDERER_TIMING +#ifndef QSG_NO_RENDERER_TIMING if (qsg_render_timing) frameTimer.start(); int bindTime = 0; @@ -248,7 +247,7 @@ void QSGRenderer::renderScene(const QSGBindable &bindable) preprocess(); bindable.bind(); -#ifdef QSG_RENDERER_TIMING +#ifndef QSG_NO_RENDERER_TIMING if (qsg_render_timing) bindTime = frameTimer.elapsed(); #endif @@ -269,7 +268,7 @@ void QSGRenderer::renderScene(const QSGBindable &bindable) #endif render(); -#ifdef QSG_RENDERER_TIMING +#ifndef QSG_NO_RENDERER_TIMING if (qsg_render_timing) renderTime = frameTimer.elapsed(); #endif @@ -289,9 +288,9 @@ void QSGRenderer::renderScene(const QSGBindable &bindable) m_index_buffer_bound = false; } -#ifdef QSG_RENDERER_TIMING +#ifndef QSG_NO_RENDERER_TIMING if (qsg_render_timing) { - printf(" - Breakdown of frametime: preprocess=%d, updates=%d, binding=%d, render=%d, total=%d\n", + printf(" - Breakdown of render time: preprocess=%d, updates=%d, binding=%d, render=%d, total=%d\n", preprocessTime, updatePassTime - preprocessTime, bindTime - updatePassTime, @@ -379,7 +378,7 @@ void QSGRenderer::preprocess() } } -#ifdef QSG_RENDERER_TIMING +#ifndef QSG_NO_RENDERER_TIMING if (qsg_render_timing) preprocessTime = frameTimer.elapsed(); #endif @@ -387,7 +386,7 @@ void QSGRenderer::preprocess() nodeUpdater()->setToplevelOpacity(context()->renderAlpha()); nodeUpdater()->updateStates(m_root_node); -#ifdef QSG_RENDERER_TIMING +#ifndef QSG_NO_RENDERER_TIMING if (qsg_render_timing) updatePassTime = frameTimer.elapsed(); #endif |