diff options
author | Ady Abraham <adyabr@google.com> | 2020-01-11 00:29:57 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-01-11 00:29:57 +0000 |
commit | eba6c6d23a0425e1d66f0f1e2d2ef37969bc597a (patch) | |
tree | b8f10fc7622522b106f6517ca212617270666923 /services/surfaceflinger | |
parent | fa6fe1af069bb14513950fb5a79ffcb0b9c43fa4 (diff) | |
parent | b0433bc72b1876aba02c5726144cd7cbec4ffee9 (diff) | |
download | native-eba6c6d23a0425e1d66f0f1e2d2ef37969bc597a.tar.gz |
Merge "SurfaceFlinger: plumb composer 2.4 onSeamlessPossible"
Diffstat (limited to 'services/surfaceflinger')
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWC2.h | 1 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.cpp | 5 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 5 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.h | 1 |
4 files changed, 12 insertions, 0 deletions
diff --git a/services/surfaceflinger/DisplayHardware/HWC2.h b/services/surfaceflinger/DisplayHardware/HWC2.h index 8b532e398c..e7cf5ffc2d 100644 --- a/services/surfaceflinger/DisplayHardware/HWC2.h +++ b/services/surfaceflinger/DisplayHardware/HWC2.h @@ -76,6 +76,7 @@ class ComposerCallback { virtual void onVsyncPeriodTimingChangedReceived( int32_t sequenceId, hwc2_display_t display, const hwc_vsync_period_change_timeline_t& updatedTimeline) = 0; + virtual void onSeamlessPossible(int32_t sequenceId, hwc2_display_t display) = 0; virtual ~ComposerCallback() = default; }; diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp index 0a7009b9a1..1960f431a8 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp +++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp @@ -125,6 +125,11 @@ public: return android::hardware::Void(); } + android::hardware::Return<void> onSeamlessPossible(android::Hwc2::Display display) override { + mCallback->onSeamlessPossible(mSequenceId, display); + return android::hardware::Void(); + } + private: HWC2::ComposerCallback* mCallback; const int32_t mSequenceId; diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 8c1d168cdb..004240bd5b 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1570,6 +1570,11 @@ void SurfaceFlinger::onVsyncPeriodTimingChangedReceived( mScheduler->onNewVsyncPeriodChangeTimeline(updatedTimeline); } +void SurfaceFlinger::onSeamlessPossible(int32_t /*sequenceId*/, hwc2_display_t /*display*/) { + // TODO(b/142753666): use constraints when calling to setActiveConfigWithConstrains and + // use this callback to know when to retry in case of SEAMLESS_NOT_POSSIBLE. +} + void SurfaceFlinger::onRefreshReceived(int sequenceId, hwc2_display_t /*hwcDisplayId*/) { Mutex::Autolock lock(mStateLock); if (sequenceId != getBE().mComposerSequenceId) { diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h index 2f84b138d2..dcd9dc2180 100644 --- a/services/surfaceflinger/SurfaceFlinger.h +++ b/services/surfaceflinger/SurfaceFlinger.h @@ -505,6 +505,7 @@ private: void onVsyncPeriodTimingChangedReceived( int32_t sequenceId, hwc2_display_t display, const hwc_vsync_period_change_timeline_t& updatedTimeline) override; + void onSeamlessPossible(int32_t sequenceId, hwc2_display_t display) override; /* ------------------------------------------------------------------------ * ISchedulerCallback |