Added environment variable DALI_REFRESH_RATE to control the render refresh rate 37/51537/8
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Mon, 9 Nov 2015 15:33:59 +0000 (15:33 +0000)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Fri, 13 Nov 2015 16:54:28 +0000 (16:54 +0000)
Change-Id: I240eb3a21ad84cccc87e3157f2d4f025cea9ab86

adaptors/base/environment-options.cpp
adaptors/base/environment-options.h
adaptors/base/environment-variables.h
adaptors/base/separate-update-render/separate-update-render-controller.cpp
adaptors/base/single-threaded/single-thread-controller.cpp

index 150b9d7..87a7406 100644 (file)
@@ -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
index 7f0f771..78528a2 100644 (file)
@@ -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;
 
index 627ee59..e62bc0a 100644 (file)
@@ -89,6 +89,8 @@ namespace Adaptor
 
 #define DALI_THREADING_MODE "DALI_THREADING_MODE"
 
+#define DALI_REFRESH_RATE "DALI_REFRESH_RATE"
+
 } // namespace Adaptor
 
 } // namespace Internal
index 91d56c9..0e99f81 100644 (file)
@@ -42,7 +42,7 @@ SeparateUpdateRenderController::SeparateUpdateRenderController( AdaptorInternalS
   mRenderThread( NULL ),
   mVSyncNotifier( NULL ),
   mThreadSync( NULL ),
-  mNumberOfVSyncsPerRender( 1 )
+  mNumberOfVSyncsPerRender( environmentOptions.GetRenderRefreshRate() )
 {
   mThreadSync = new ThreadSynchronization( adaptorInterfaces, mNumberOfVSyncsPerRender );
 
index 9d70fe8..1397a3c 100644 (file)
@@ -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 )