From 4b8e9a984bfbcae6d20fa2b21779e3437b0e348e Mon Sep 17 00:00:00 2001 From: Adeel Kazmi Date: Mon, 9 Nov 2015 15:33:59 +0000 Subject: [PATCH] Added environment variable DALI_REFRESH_RATE to control the render refresh rate Change-Id: I240eb3a21ad84cccc87e3157f2d4f025cea9ab86 --- adaptors/base/environment-options.cpp | 16 ++++++++++++++++ adaptors/base/environment-options.h | 6 ++++++ adaptors/base/environment-variables.h | 2 ++ .../separate-update-render-controller.cpp | 2 +- .../base/single-threaded/single-thread-controller.cpp | 2 +- 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/adaptors/base/environment-options.cpp b/adaptors/base/environment-options.cpp index 150b9d7..87a7406 100644 --- a/adaptors/base/environment-options.cpp +++ b/adaptors/base/environment-options.cpp @@ -105,6 +105,7 @@ EnvironmentOptions::EnvironmentOptions() mWindowWidth( 0 ), mWindowHeight( 0 ), mThreadingMode( ThreadingMode::SEPARATE_UPDATE_RENDER ), + mRenderRefreshRate( 1 ), mLogFunction( NULL ) { ParseEnvironmentOptions(); @@ -241,6 +242,11 @@ ThreadingMode::Type EnvironmentOptions::GetThreadingMode() const return mThreadingMode; } +unsigned int EnvironmentOptions::GetRenderRefreshRate() const +{ + return mRenderRefreshRate; +} + bool EnvironmentOptions::PerformanceServerRequired() const { return ( ( GetPerformanceStatsLoggingOptions() > 0) || @@ -368,6 +374,16 @@ void EnvironmentOptions::ParseEnvironmentOptions() } } } + + int renderRefreshRate(0); + if ( GetIntegerEnvironmentVariable( DALI_REFRESH_RATE, renderRefreshRate ) ) + { + // Only change it if it's valid + if( renderRefreshRate > 1 ) + { + mRenderRefreshRate = renderRefreshRate; + } + } } } // Adaptor diff --git a/adaptors/base/environment-options.h b/adaptors/base/environment-options.h index 7f0f771..78528a2 100644 --- a/adaptors/base/environment-options.h +++ b/adaptors/base/environment-options.h @@ -193,6 +193,11 @@ public: */ ThreadingMode::Type GetThreadingMode() const; + /** + * @return The render refresh rate. + */ + unsigned int GetRenderRefreshRate() const; + private: // Internal /** @@ -226,6 +231,7 @@ private: // Data unsigned int mWindowWidth; ///< width of the window unsigned int mWindowHeight; ///< height of the window ThreadingMode::Type mThreadingMode; ///< threading mode + unsigned int mRenderRefreshRate; ///< render refresh rate Dali::Integration::Log::LogFunction mLogFunction; diff --git a/adaptors/base/environment-variables.h b/adaptors/base/environment-variables.h index 627ee59..e62bc0a 100644 --- a/adaptors/base/environment-variables.h +++ b/adaptors/base/environment-variables.h @@ -89,6 +89,8 @@ namespace Adaptor #define DALI_THREADING_MODE "DALI_THREADING_MODE" +#define DALI_REFRESH_RATE "DALI_REFRESH_RATE" + } // namespace Adaptor } // namespace Internal diff --git a/adaptors/base/separate-update-render/separate-update-render-controller.cpp b/adaptors/base/separate-update-render/separate-update-render-controller.cpp index 91d56c9..0e99f81 100644 --- a/adaptors/base/separate-update-render/separate-update-render-controller.cpp +++ b/adaptors/base/separate-update-render/separate-update-render-controller.cpp @@ -42,7 +42,7 @@ SeparateUpdateRenderController::SeparateUpdateRenderController( AdaptorInternalS mRenderThread( NULL ), mVSyncNotifier( NULL ), mThreadSync( NULL ), - mNumberOfVSyncsPerRender( 1 ) + mNumberOfVSyncsPerRender( environmentOptions.GetRenderRefreshRate() ) { mThreadSync = new ThreadSynchronization( adaptorInterfaces, mNumberOfVSyncsPerRender ); diff --git a/adaptors/base/single-threaded/single-thread-controller.cpp b/adaptors/base/single-threaded/single-thread-controller.cpp index 9d70fe8..1397a3c 100644 --- a/adaptors/base/single-threaded/single-thread-controller.cpp +++ b/adaptors/base/single-threaded/single-thread-controller.cpp @@ -61,7 +61,7 @@ SingleThreadController::SingleThreadController( AdaptorInternalServices& adaptor mPerformanceInterface( adaptorInterfaces.GetPerformanceInterface() ), mLastUpdateRenderTime( 0 ), mSystemTime( 0 ), - mRefreshRate( 1 ), + mRefreshRate( environmentOptions.GetRenderRefreshRate() ), mState( State::STOPPED ), mUpdatingAndRendering( false ), mStopRequestedWhileRendering( false ) -- 2.7.4