diff options
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.h')
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h index 8363ee5a62..14bc09e4e2 100644 --- a/services/surfaceflinger/SurfaceFlinger.h +++ b/services/surfaceflinger/SurfaceFlinger.h @@ -897,7 +897,8 @@ private: // Check if unified draw supported void startUnifiedDraw(); void InitComposerExtn(); - void InitSmomo(); + void createSmomoInstance(const DisplayDeviceState& state); + void destroySmomoInstance(const sp<DisplayDevice>& display); // Returns whether a new buffer has been latched (see handlePageFlip()) bool handleMessageInvalidate(); @@ -1351,7 +1352,7 @@ private: std::chrono::nanoseconds presentLatency); int getMaxAcquiredBufferCountForRefreshRate(Fps refreshRate) const; void setDesiredModeByThermalLevel(float newFpsRequest); - bool isFpsDeferNeeded(const ActiveModeInfo& info); + bool isFpsDeferNeeded(const ActiveModeInfo& info) REQUIRES(mStateLock); virtual void getModeFromFps(float fps,DisplayModePtr& outMode); void handleNewLevelFps(float currFps, float newLevelFps, float* fpsToSet); @@ -1665,12 +1666,19 @@ private: void scheduleRegionSamplingThread(); void notifyRegionSamplingThread(); void setRefreshRates(std::unique_ptr<scheduler::RefreshRateConfigs> &refreshRateConfigs); + void UpdateSmomoState(); public: nsecs_t mVsyncPeriod = -1; DolphinWrapper mDolphinWrapper; LayerExtWrapper mLayerExt; - SmomoIntf *mSmoMo = nullptr; + struct SmomoInfo { + uint32_t displayId; + uint32_t layerStackId; + bool active = false; + SmomoIntf *smoMo = nullptr; + }; + std::vector<SmomoInfo> mSmomoInstances; private: bool mEarlyWakeUpEnabled = false; |