diff options
| author | 2022-02-25 23:15:00 +0000 | |
|---|---|---|
| committer | 2022-02-25 23:15:00 +0000 | |
| commit | eee5939cfe279965b10b3ce9069ca8ee31cb5ce3 (patch) | |
| tree | 3a2e09917628e16080739d07714e0e7143528f71 | |
| parent | afa4e52ccc8d852b4d982533bd7ace09ce0c832e (diff) | |
| parent | e9befd7c00e5531e676fa945cb39da0139c57562 (diff) | |
Merge "SF: handle onComposerHalVsyncIdle" into tm-dev
| -rw-r--r-- | services/surfaceflinger/Scheduler/Scheduler.h | 1 | ||||
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/services/surfaceflinger/Scheduler/Scheduler.h b/services/surfaceflinger/Scheduler/Scheduler.h index 9c32b1f421..f6c81c0ba2 100644 --- a/services/surfaceflinger/Scheduler/Scheduler.h +++ b/services/surfaceflinger/Scheduler/Scheduler.h @@ -169,6 +169,7 @@ public: // The period is the vsync period from the current display configuration. void resyncToHardwareVsync(bool makeAvailable, nsecs_t period); void resync() EXCLUDES(mRefreshRateConfigsLock); + void forceNextResync() { mLastResyncTime = 0; } // Passes a vsync sample to VsyncController. periodFlushed will be true if // VsyncController detected that the vsync period changed, and false otherwise. diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 46d90c8d7f..91b479b783 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1957,8 +1957,8 @@ void SurfaceFlinger::onComposerHalRefresh(hal::HWDisplayId) { } void SurfaceFlinger::onComposerHalVsyncIdle(hal::HWDisplayId) { - // TODO(b/198106220): force enable HWVsync to avoid drift problem during - // idle. + ATRACE_CALL(); + mScheduler->forceNextResync(); } void SurfaceFlinger::setVsyncEnabled(bool enabled) { |