summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/SurfaceFlinger.h
diff options
context:
space:
mode:
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.h')
-rw-r--r--services/surfaceflinger/SurfaceFlinger.h14
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;