diff options
author | 2023-12-21 19:33:25 +0000 | |
---|---|---|
committer | 2023-12-21 19:33:25 +0000 | |
commit | 63abc2ba757b4ce008ca50caad8c70c768be7137 (patch) | |
tree | af6e74e230daeec1f94709ec97935cbc49aa14ec /services/surfaceflinger/DisplayDevice.cpp | |
parent | aaab4c3b4f012f48bca428b9db1cd954a6fbc8e9 (diff) |
Revert "SF: Flow DisplayModeRequest through mode set FSM"
This reverts commit aaab4c3b4f012f48bca428b9db1cd954a6fbc8e9.
Reason for revert: b/317378302
Change-Id: I516f52c41d27d9ea3eca969a3f786d2115521dac
Diffstat (limited to 'services/surfaceflinger/DisplayDevice.cpp')
-rw-r--r-- | services/surfaceflinger/DisplayDevice.cpp | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp index 671382c98e..950b05e1da 100644 --- a/services/surfaceflinger/DisplayDevice.cpp +++ b/services/surfaceflinger/DisplayDevice.cpp @@ -222,6 +222,7 @@ bool DisplayDevice::initiateModeChange(display::DisplayModeRequest&& desiredMode const hal::VsyncPeriodChangeConstraints& constraints, hal::VsyncPeriodChangeTimeline& outTimeline) { mPendingModeOpt = std::move(desiredMode); + mIsModeSetPending = true; const auto& mode = *mPendingModeOpt->mode.modePtr; @@ -234,22 +235,9 @@ bool DisplayDevice::initiateModeChange(display::DisplayModeRequest&& desiredMode return true; } -auto DisplayDevice::finalizeModeChange() -> ModeChange { - if (!mPendingModeOpt) return NoModeChange{"No pending mode"}; - - auto pendingMode = *std::exchange(mPendingModeOpt, std::nullopt); - auto& pendingModePtr = pendingMode.mode.modePtr; - - if (!mRefreshRateSelector->displayModes().contains(pendingModePtr->getId())) { - return NoModeChange{"Unknown pending mode"}; - } - - if (getActiveMode().modePtr->getResolution() != pendingModePtr->getResolution()) { - return ResolutionChange{std::move(pendingMode)}; - } - - setActiveMode(pendingModePtr->getId(), pendingModePtr->getVsyncRate(), pendingMode.mode.fps); - return RefreshRateChange{std::move(pendingMode)}; +void DisplayDevice::finalizeModeChange(DisplayModeId modeId, Fps vsyncRate, Fps renderFps) { + setActiveMode(modeId, vsyncRate, renderFps); + mIsModeSetPending = false; } nsecs_t DisplayDevice::getVsyncPeriodFromHWC() const { @@ -583,14 +571,10 @@ auto DisplayDevice::getDesiredMode() const -> DisplayModeRequestOpt { return mDesiredModeOpt; } -auto DisplayDevice::takeDesiredMode() -> DisplayModeRequestOpt { - DisplayModeRequestOpt desiredModeOpt; - { - std::scoped_lock lock(mDesiredModeLock); - std::swap(mDesiredModeOpt, desiredModeOpt); - mHasDesiredModeTrace = false; - } - return desiredModeOpt; +void DisplayDevice::clearDesiredMode() { + std::scoped_lock lock(mDesiredModeLock); + mDesiredModeOpt.reset(); + mHasDesiredModeTrace = false; } void DisplayDevice::adjustRefreshRate(Fps pacesetterDisplayRefreshRate) { |