Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a961e117 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "SF: DispSync should sync to activeConfig period"

parents 0f1badaa 5988f480
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -14,11 +14,13 @@
 * limitations under the License.
 */

#define ATRACE_TAG ATRACE_TAG_GRAPHICS
#undef LOG_TAG
#define LOG_TAG "VSyncReactor"
//#define LOG_NDEBUG 0
#include "VSyncReactor.h"
#include <log/log.h>
#include <utils/Trace.h>
#include "TimeKeeper.h"
#include "VSyncDispatch.h"
#include "VSyncTracker.h"
@@ -186,6 +188,7 @@ void VSyncReactor::endPeriodTransition() {
}

void VSyncReactor::setPeriod(nsecs_t period) {
    ATRACE_INT64("VSR-setPeriod", period);
    std::lock_guard lk(mMutex);
    mLastHwVsync.reset();
    if (period == getPeriod()) {
+3 −3
Original line number Diff line number Diff line
@@ -885,7 +885,7 @@ void SurfaceFlinger::setDesiredActiveConfig(const ActiveConfigInfo& info) {
        repaintEverythingForHWC();
        // Start receiving vsync samples now, so that we can detect a period
        // switch.
        mScheduler->resyncToHardwareVsync(true, getVsyncPeriod());
        mScheduler->resyncToHardwareVsync(true, refreshRate.vsyncPeriod);
        // As we called to set period, we will call to onRefreshRateChangeCompleted once
        // DispSync model is locked.
        mVSyncModulator->onRefreshRateChangeInitiated();
@@ -962,9 +962,9 @@ void SurfaceFlinger::desiredActiveConfigChangeDone() {
    mDesiredActiveConfig.event = Scheduler::ConfigEvent::None;
    mDesiredActiveConfigChanged = false;

    mScheduler->resyncToHardwareVsync(true, getVsyncPeriod());
    auto refreshRate =
    auto const refreshRate =
            mRefreshRateConfigs->getRefreshRateFromConfigId(mDesiredActiveConfig.configId);
    mScheduler->resyncToHardwareVsync(true, refreshRate.vsyncPeriod);
    mPhaseConfiguration->setRefreshRateFps(refreshRate.fps);
    mVSyncModulator->setPhaseOffsets(mPhaseConfiguration->getCurrentOffsets());
}