Loading services/surfaceflinger/DisplayDevice.cpp +8 −2 Original line number Diff line number Diff line Loading @@ -479,8 +479,9 @@ auto DisplayDevice::setDesiredActiveMode(const ActiveModeInfo& info, bool force) const auto& desiredMode = *info.modeOpt->modePtr; // Check if we are already at the desired mode if (!force && refreshRateSelector().getActiveMode().modePtr->getId() == desiredMode.getId()) { if (refreshRateSelector().getActiveMode() == info.modeOpt) { const auto currentMode = refreshRateSelector().getActiveMode(); if (!force && currentMode.modePtr->getId() == desiredMode.getId()) { if (currentMode == info.modeOpt) { return DesiredActiveModeAction::None; } Loading @@ -488,6 +489,11 @@ auto DisplayDevice::setDesiredActiveMode(const ActiveModeInfo& info, bool force) return DesiredActiveModeAction::InitiateRenderRateSwitch; } // Set the render frame rate to the current physical refresh rate to schedule the next // frame as soon as possible. setActiveMode(currentMode.modePtr->getId(), currentMode.modePtr->getFps(), currentMode.modePtr->getFps()); // Initiate a mode change. mDesiredActiveModeChanged = true; mDesiredActiveMode = info; Loading services/surfaceflinger/SurfaceFlinger.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -1152,6 +1152,10 @@ void SurfaceFlinger::setDesiredActiveMode(display::DisplayModeRequest&& request, switch (display->setDesiredActiveMode(DisplayDevice::ActiveModeInfo(std::move(request)), force)) { case DisplayDevice::DesiredActiveModeAction::InitiateDisplayModeSwitch: // Set the render rate as setDesiredActiveMode updated it. mScheduler->setRenderRate(display->refreshRateSelector().getActiveMode().fps); // Schedule a new frame to initiate the display mode switch. scheduleComposite(FrameHint::kNone); // Start receiving vsync samples now, so that we can detect a period Loading Loading
services/surfaceflinger/DisplayDevice.cpp +8 −2 Original line number Diff line number Diff line Loading @@ -479,8 +479,9 @@ auto DisplayDevice::setDesiredActiveMode(const ActiveModeInfo& info, bool force) const auto& desiredMode = *info.modeOpt->modePtr; // Check if we are already at the desired mode if (!force && refreshRateSelector().getActiveMode().modePtr->getId() == desiredMode.getId()) { if (refreshRateSelector().getActiveMode() == info.modeOpt) { const auto currentMode = refreshRateSelector().getActiveMode(); if (!force && currentMode.modePtr->getId() == desiredMode.getId()) { if (currentMode == info.modeOpt) { return DesiredActiveModeAction::None; } Loading @@ -488,6 +489,11 @@ auto DisplayDevice::setDesiredActiveMode(const ActiveModeInfo& info, bool force) return DesiredActiveModeAction::InitiateRenderRateSwitch; } // Set the render frame rate to the current physical refresh rate to schedule the next // frame as soon as possible. setActiveMode(currentMode.modePtr->getId(), currentMode.modePtr->getFps(), currentMode.modePtr->getFps()); // Initiate a mode change. mDesiredActiveModeChanged = true; mDesiredActiveMode = info; Loading
services/surfaceflinger/SurfaceFlinger.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -1152,6 +1152,10 @@ void SurfaceFlinger::setDesiredActiveMode(display::DisplayModeRequest&& request, switch (display->setDesiredActiveMode(DisplayDevice::ActiveModeInfo(std::move(request)), force)) { case DisplayDevice::DesiredActiveModeAction::InitiateDisplayModeSwitch: // Set the render rate as setDesiredActiveMode updated it. mScheduler->setRenderRate(display->refreshRateSelector().getActiveMode().fps); // Schedule a new frame to initiate the display mode switch. scheduleComposite(FrameHint::kNone); // Start receiving vsync samples now, so that we can detect a period Loading