Loading services/surfaceflinger/DisplayDevice.cpp +2 −5 Original line number Diff line number Diff line Loading @@ -213,10 +213,7 @@ void DisplayDevice::setActiveMode(DisplayModeId modeId, Fps displayFps, Fps rend ATRACE_INT(mRenderFrameRateFPSTrace.c_str(), renderFps.getIntValue()); mRefreshRateSelector->setActiveMode(modeId, renderFps); if (mRefreshRateOverlay) { mRefreshRateOverlay->changeRefreshRate(displayFps, renderFps); } updateRefreshRateOverlayRate(displayFps, renderFps); } status_t DisplayDevice::initiateModeChange(const ActiveModeInfo& info, Loading Loading @@ -473,7 +470,7 @@ void DisplayDevice::enableRefreshRateOverlay(bool enable, bool setByHwc, bool sh mRefreshRateOverlay = std::make_unique<RefreshRateOverlay>(fpsRange, features); mRefreshRateOverlay->setLayerStack(getLayerStack()); mRefreshRateOverlay->setViewport(getSize()); updateRefreshRateOverlayRate(getActiveMode().modePtr->getFps(), getActiveMode().fps); updateRefreshRateOverlayRate(getActiveMode().modePtr->getFps(), getActiveMode().fps, setByHwc); } void DisplayDevice::updateRefreshRateOverlayRate(Fps displayFps, Fps renderFps, bool setByHwc) { Loading services/surfaceflinger/SurfaceFlinger.cpp +15 −12 Original line number Diff line number Diff line Loading @@ -8207,19 +8207,22 @@ void SurfaceFlinger::enableRefreshRateOverlay(bool enable) { bool setByHwc = getHwComposer().hasCapability(Capability::REFRESH_RATE_CHANGED_CALLBACK_DEBUG); for (const auto& [id, display] : mPhysicalDisplays) { if (display.snapshot().connectionType() == ui::DisplayConnectionType::Internal) { if (const auto device = getDisplayDeviceLocked(id)) { const auto enableOverlay = [&](const bool setByHwc) FTL_FAKE_GUARD( kMainThreadContext) { device->enableRefreshRateOverlay(enable, setByHwc, mRefreshRateOverlaySpinner, mRefreshRateOverlayRenderRate, mRefreshRateOverlayShowInMiddle); }; enableOverlay(setByHwc); if (setByHwc) { const auto status = getHwComposer().setRefreshRateChangedCallbackDebugEnabled(id, enable); if (status != NO_ERROR) { ALOGE("Error updating the refresh rate changed callback debug enabled"); return; enableOverlay(/*setByHwc*/ false); } } if (const auto device = getDisplayDeviceLocked(id)) { device->enableRefreshRateOverlay(enable, setByHwc, mRefreshRateOverlaySpinner, mRefreshRateOverlayRenderRate, mRefreshRateOverlayShowInMiddle); } } } Loading Loading
services/surfaceflinger/DisplayDevice.cpp +2 −5 Original line number Diff line number Diff line Loading @@ -213,10 +213,7 @@ void DisplayDevice::setActiveMode(DisplayModeId modeId, Fps displayFps, Fps rend ATRACE_INT(mRenderFrameRateFPSTrace.c_str(), renderFps.getIntValue()); mRefreshRateSelector->setActiveMode(modeId, renderFps); if (mRefreshRateOverlay) { mRefreshRateOverlay->changeRefreshRate(displayFps, renderFps); } updateRefreshRateOverlayRate(displayFps, renderFps); } status_t DisplayDevice::initiateModeChange(const ActiveModeInfo& info, Loading Loading @@ -473,7 +470,7 @@ void DisplayDevice::enableRefreshRateOverlay(bool enable, bool setByHwc, bool sh mRefreshRateOverlay = std::make_unique<RefreshRateOverlay>(fpsRange, features); mRefreshRateOverlay->setLayerStack(getLayerStack()); mRefreshRateOverlay->setViewport(getSize()); updateRefreshRateOverlayRate(getActiveMode().modePtr->getFps(), getActiveMode().fps); updateRefreshRateOverlayRate(getActiveMode().modePtr->getFps(), getActiveMode().fps, setByHwc); } void DisplayDevice::updateRefreshRateOverlayRate(Fps displayFps, Fps renderFps, bool setByHwc) { Loading
services/surfaceflinger/SurfaceFlinger.cpp +15 −12 Original line number Diff line number Diff line Loading @@ -8207,19 +8207,22 @@ void SurfaceFlinger::enableRefreshRateOverlay(bool enable) { bool setByHwc = getHwComposer().hasCapability(Capability::REFRESH_RATE_CHANGED_CALLBACK_DEBUG); for (const auto& [id, display] : mPhysicalDisplays) { if (display.snapshot().connectionType() == ui::DisplayConnectionType::Internal) { if (const auto device = getDisplayDeviceLocked(id)) { const auto enableOverlay = [&](const bool setByHwc) FTL_FAKE_GUARD( kMainThreadContext) { device->enableRefreshRateOverlay(enable, setByHwc, mRefreshRateOverlaySpinner, mRefreshRateOverlayRenderRate, mRefreshRateOverlayShowInMiddle); }; enableOverlay(setByHwc); if (setByHwc) { const auto status = getHwComposer().setRefreshRateChangedCallbackDebugEnabled(id, enable); if (status != NO_ERROR) { ALOGE("Error updating the refresh rate changed callback debug enabled"); return; enableOverlay(/*setByHwc*/ false); } } if (const auto device = getDisplayDeviceLocked(id)) { device->enableRefreshRateOverlay(enable, setByHwc, mRefreshRateOverlaySpinner, mRefreshRateOverlayRenderRate, mRefreshRateOverlayShowInMiddle); } } } Loading