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

Commit 3faf5744 authored by ramindani's avatar ramindani
Browse files

[SF] Update only the render rate on the

refresh rate indicator

Test: manual
BUG: 284845445
Change-Id: I30c34f1363bd7b3a21741c6b3ee70b67b1938fc0
parent 9b08532c
Loading
Loading
Loading
Loading
+6 −2
Original line number Original line Diff line number Diff line
@@ -477,8 +477,12 @@ void DisplayDevice::enableRefreshRateOverlay(bool enable, bool setByHwc, bool sh


void DisplayDevice::updateRefreshRateOverlayRate(Fps vsyncRate, Fps renderFps, bool setByHwc) {
void DisplayDevice::updateRefreshRateOverlayRate(Fps vsyncRate, Fps renderFps, bool setByHwc) {
    ATRACE_CALL();
    ATRACE_CALL();
    if (mRefreshRateOverlay && (!mRefreshRateOverlay->isSetByHwc() || setByHwc)) {
    if (mRefreshRateOverlay) {
        if (!mRefreshRateOverlay->isSetByHwc() || setByHwc) {
            mRefreshRateOverlay->changeRefreshRate(vsyncRate, renderFps);
            mRefreshRateOverlay->changeRefreshRate(vsyncRate, renderFps);
        } else {
            mRefreshRateOverlay->changeRenderRate(renderFps);
        }
    }
    }
}
}


+9 −0
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@
#include "Client.h"
#include "Client.h"
#include "Layer.h"
#include "Layer.h"
#include "RefreshRateOverlay.h"
#include "RefreshRateOverlay.h"
#include "Utils/FlagUtils.h"


#include <SkSurface.h>
#include <SkSurface.h>


@@ -249,6 +250,14 @@ void RefreshRateOverlay::changeRefreshRate(Fps vsyncRate, Fps renderFps) {
    createTransaction().setBuffer(mSurfaceControl->get(), buffer).apply();
    createTransaction().setBuffer(mSurfaceControl->get(), buffer).apply();
}
}


void RefreshRateOverlay::changeRenderRate(Fps renderFps) {
    if (mFeatures.test(Features::RenderRate) && mVsyncRate && flagutils::vrrConfigEnabled()) {
        mRenderFps = renderFps;
        const auto buffer = getOrCreateBuffers(*mVsyncRate, renderFps)[mFrame];
        createTransaction().setBuffer(mSurfaceControl->get(), buffer).apply();
    }
}

void RefreshRateOverlay::animate() {
void RefreshRateOverlay::animate() {
    if (!mFeatures.test(Features::Spinner) || !mVsyncRate) return;
    if (!mFeatures.test(Features::Spinner) || !mVsyncRate) return;


+1 −0
Original line number Original line Diff line number Diff line
@@ -50,6 +50,7 @@ public:
    void setLayerStack(ui::LayerStack);
    void setLayerStack(ui::LayerStack);
    void setViewport(ui::Size);
    void setViewport(ui::Size);
    void changeRefreshRate(Fps, Fps);
    void changeRefreshRate(Fps, Fps);
    void changeRenderRate(Fps);
    void animate();
    void animate();
    bool isSetByHwc() const { return mFeatures.test(RefreshRateOverlay::Features::SetByHwc); }
    bool isSetByHwc() const { return mFeatures.test(RefreshRateOverlay::Features::SetByHwc); }