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

Commit bfdbff01 authored by Ady Abraham's avatar Ady Abraham Committed by Android (Google) Code Review
Browse files

Merge "SF: send the renderFrameRate with mode changed event"

parents 483d41ed 67434eb6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2337,6 +2337,7 @@ status_t SurfaceComposerClient::getDynamicDisplayInfo(const sp<IBinder>& display
        }

        outInfo->activeDisplayModeId = ginfo.activeDisplayModeId;
        outInfo->renderFrameRate = ginfo.renderFrameRate;

        outInfo->supportedColorModes.clear();
        outInfo->supportedColorModes.reserve(ginfo.supportedColorModes.size());
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ parcelable DynamicDisplayInfo {
    List<DisplayMode> supportedDisplayModes;

    int activeDisplayModeId;
    float renderFrameRate;

    int[] supportedColorModes;
    int activeColorMode;
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ struct DynamicDisplayInfo {
    // we can't use size_t because it may have different width
    // in the client process.
    ui::DisplayModeId activeDisplayModeId;
    float renderFrameRate;

    std::vector<ui::ColorMode> supportedColorModes;
    ui::ColorMode activeColorMode;
+6 −6
Original line number Diff line number Diff line
@@ -124,12 +124,12 @@ DisplayEventReceiver::Event makeVSync(PhysicalDisplayId displayId, nsecs_t times
    return event;
}

DisplayEventReceiver::Event makeModeChanged(DisplayModePtr mode) {
DisplayEventReceiver::Event makeModeChanged(const scheduler::FrameRateMode& mode) {
    DisplayEventReceiver::Event event;
    event.header = {DisplayEventReceiver::DISPLAY_EVENT_MODE_CHANGE, mode->getPhysicalDisplayId(),
                    systemTime()};
    event.modeChange.modeId = mode->getId().value();
    event.modeChange.vsyncPeriod = mode->getVsyncPeriod();
    event.header = {DisplayEventReceiver::DISPLAY_EVENT_MODE_CHANGE,
                    mode.modePtr->getPhysicalDisplayId(), systemTime()};
    event.modeChange.modeId = mode.modePtr->getId().value();
    event.modeChange.vsyncPeriod = mode.fps.getPeriodNsecs();
    return event;
}

@@ -405,7 +405,7 @@ void EventThread::onHotplugReceived(PhysicalDisplayId displayId, bool connected)
    mCondition.notify_all();
}

void EventThread::onModeChanged(DisplayModePtr mode) {
void EventThread::onModeChanged(const scheduler::FrameRateMode& mode) {
    std::lock_guard<std::mutex> lock(mMutex);

    mPendingEvents.push_back(makeModeChanged(mode));
+3 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include <sys/types.h>
#include <utils/Errors.h>

#include <scheduler/FrameRateMode.h>
#include <condition_variable>
#include <cstdint>
#include <deque>
@@ -134,7 +135,7 @@ public:
    virtual void onHotplugReceived(PhysicalDisplayId displayId, bool connected) = 0;

    // called when SF changes the active mode and apps needs to be notified about the change
    virtual void onModeChanged(DisplayModePtr) = 0;
    virtual void onModeChanged(const scheduler::FrameRateMode&) = 0;

    // called when SF updates the Frame Rate Override list
    virtual void onFrameRateOverridesChanged(PhysicalDisplayId displayId,
@@ -185,7 +186,7 @@ public:

    void onHotplugReceived(PhysicalDisplayId displayId, bool connected) override;

    void onModeChanged(DisplayModePtr) override;
    void onModeChanged(const scheduler::FrameRateMode&) override;

    void onFrameRateOverridesChanged(PhysicalDisplayId displayId,
                                     std::vector<FrameRateOverride> overrides) override;
Loading