diff options
author | 2012-04-27 13:55:05 -0700 | |
---|---|---|
committer | 2012-04-27 13:55:05 -0700 | |
commit | 06e51a0aaf76fe53cef20c3345cf1ebda2b3461e (patch) | |
tree | 9f23571632a48ebad5e29a6be867285b85ee66fa | |
parent | 03e407270c7ad76632f982c886d0776bed9e9b4c (diff) |
don't actuate vsync hint when not needed
Change-Id: I61c43dd76041816ab8cbe9aeaa55c11c1479ed03
-rw-r--r-- | services/surfaceflinger/DisplayHardware/PowerHAL.cpp | 8 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/PowerHAL.h | 1 |
2 files changed, 7 insertions, 2 deletions
diff --git a/services/surfaceflinger/DisplayHardware/PowerHAL.cpp b/services/surfaceflinger/DisplayHardware/PowerHAL.cpp index 0cb47d59a8..e41fbbc319 100644 --- a/services/surfaceflinger/DisplayHardware/PowerHAL.cpp +++ b/services/surfaceflinger/DisplayHardware/PowerHAL.cpp @@ -25,7 +25,7 @@ namespace android { // --------------------------------------------------------------------------- -PowerHAL::PowerHAL() : mPowerModule(0) { +PowerHAL::PowerHAL() : mPowerModule(0), mVSyncHintEnabled(false) { int err = hw_get_module(POWER_HARDWARE_MODULE_ID, (const hw_module_t **)&mPowerModule); ALOGW_IF(err, "%s module not found", POWER_HARDWARE_MODULE_ID); @@ -44,7 +44,11 @@ status_t PowerHAL::vsyncHint(bool enabled) { } if (mPowerModule->common.module_api_version >= POWER_MODULE_API_VERSION_0_2) { if (mPowerModule->powerHint) { - mPowerModule->powerHint(mPowerModule, POWER_HINT_VSYNC, (void*)enabled); + if (mVSyncHintEnabled != bool(enabled)) { + mPowerModule->powerHint(mPowerModule, + POWER_HINT_VSYNC, (void*)enabled); + mVSyncHintEnabled = bool(enabled); + } } } return NO_ERROR; diff --git a/services/surfaceflinger/DisplayHardware/PowerHAL.h b/services/surfaceflinger/DisplayHardware/PowerHAL.h index 929bc0396f..ef67b8f192 100644 --- a/services/surfaceflinger/DisplayHardware/PowerHAL.h +++ b/services/surfaceflinger/DisplayHardware/PowerHAL.h @@ -36,6 +36,7 @@ public: private: power_module_t* mPowerModule; + bool mVSyncHintEnabled; }; // --------------------------------------------------------------------------- |