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

Commit 9f392a93 authored by Dominik Laskowski's avatar Dominik Laskowski Committed by Android (Google) Code Review
Browse files

Merge changes I2719e352,I580d3301 into main

* changes:
  SF: Remove Scheduler::resetPhaseConfiguration
  SF: Reset the active display on hotplug reconnect
parents 192e6081 e0bc94b8
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -122,6 +122,12 @@ void Scheduler::setPacesetterDisplay(PhysicalDisplayId pacesetterId) {

    demotePacesetterDisplay(kPromotionParams);
    promotePacesetterDisplay(pacesetterId, kPromotionParams);

    // Cancel the pending refresh rate change, if any, before updating the phase configuration.
    mVsyncModulator->cancelRefreshRateChange();

    mVsyncConfiguration->reset();
    updatePhaseConfiguration(pacesetterSelectorPtr()->getActiveMode().fps);
}

void Scheduler::registerDisplay(PhysicalDisplayId displayId, RefreshRateSelectorPtr selectorPtr,
@@ -488,14 +494,6 @@ void Scheduler::updatePhaseConfiguration(Fps refreshRate) {
                   refreshRate.getPeriod());
}

void Scheduler::resetPhaseConfiguration(Fps refreshRate) {
    // Cancel the pending refresh rate change, if any, before updating the phase configuration.
    mVsyncModulator->cancelRefreshRateChange();

    mVsyncConfiguration->reset();
    updatePhaseConfiguration(refreshRate);
}

void Scheduler::setActiveDisplayPowerModeForRefreshRateStats(hal::PowerMode powerMode) {
    mRefreshRateStats->setPowerMode(powerMode);
}
+0 −1
Original line number Diff line number Diff line
@@ -188,7 +188,6 @@ public:
    }

    void updatePhaseConfiguration(Fps);
    void resetPhaseConfiguration(Fps) REQUIRES(kMainThreadContext);

    const VsyncConfiguration& getVsyncConfiguration() const { return *mVsyncConfiguration; }

+2 −7
Original line number Diff line number Diff line
@@ -3836,11 +3836,8 @@ void SurfaceFlinger::processDisplayChanged(const wp<IBinder>& displayToken,
                setPowerModeInternal(display, hal::PowerMode::ON);
            }

            // TODO(b/175678251) Call a listener instead.
            if (currentState.physical->hwcDisplayId == getHwComposer().getPrimaryHwcDisplayId()) {
                const Fps refreshRate =
                        mDisplayModeController.getActiveMode(display->getPhysicalId()).fps;
                mScheduler->resetPhaseConfiguration(refreshRate);
            if (display->getPhysicalId() == mActiveDisplayId) {
                onActiveDisplayChangedLocked(nullptr, *display);
            }
        }
        return;
@@ -8141,8 +8138,6 @@ void SurfaceFlinger::onActiveDisplayChangedLocked(const DisplayDevice* inactiveD
    mActiveDisplayId = activeDisplay.getPhysicalId();
    activeDisplay.getCompositionDisplay()->setLayerCachingTexturePoolEnabled(true);

    mScheduler->resetPhaseConfiguration(mDisplayModeController.getActiveMode(mActiveDisplayId).fps);

    // TODO(b/255635711): Check for pending mode changes on other displays.
    mScheduler->setModeChangePending(false);