Revert "SF: Flow DisplayModeRequest through mode set FSM"
This reverts commit aaab4c3b4f012f48bca428b9db1cd954a6fbc8e9.
Reason for revert: b/317378302
Change-Id: I516f52c41d27d9ea3eca969a3f786d2115521dac
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index 671382c..950b05e 100644
--- a/services/surfaceflinger/DisplayDevice.cpp
+++ b/services/surfaceflinger/DisplayDevice.cpp
@@ -222,6 +222,7 @@
const hal::VsyncPeriodChangeConstraints& constraints,
hal::VsyncPeriodChangeTimeline& outTimeline) {
mPendingModeOpt = std::move(desiredMode);
+ mIsModeSetPending = true;
const auto& mode = *mPendingModeOpt->mode.modePtr;
@@ -234,22 +235,9 @@
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 @@
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) {