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

Commit 30e378de authored by Kriti Dang's avatar Kriti Dang
Browse files

Map the hwc-id -> SF-id in getPreferredBootDisplayMode and SF-Id -> HWC

id in setUserPreferredDisplayMode

Bug: 219959797
Test: m
Change-Id: I20e69dd50ad06b527a833ebef5e617b2ebd3d236
(cherry picked from commit f50d677e)
parent 37ac7569
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -57,7 +57,7 @@ public:
    virtual void createClientCompositionCache(uint32_t cacheSize) = 0;
    virtual void createClientCompositionCache(uint32_t cacheSize) = 0;


    // Returns the boot display mode preferred by HWC.
    // Returns the boot display mode preferred by HWC.
    virtual int32_t getPreferredBootModeId() const = 0;
    virtual int32_t getPreferredBootHwcConfigId() const = 0;


protected:
protected:
    ~Display() = default;
    ~Display() = default;
+2 −2
Original line number Original line Diff line number Diff line
@@ -62,7 +62,7 @@ public:
    bool isSecure() const override;
    bool isSecure() const override;
    bool isVirtual() const override;
    bool isVirtual() const override;
    void disconnect() override;
    void disconnect() override;
    int32_t getPreferredBootModeId() const override;
    int32_t getPreferredBootHwcConfigId() const override;
    void createDisplayColorProfile(
    void createDisplayColorProfile(
            const compositionengine::DisplayColorProfileCreationArgs&) override;
            const compositionengine::DisplayColorProfileCreationArgs&) override;
    void createRenderSurface(const compositionengine::RenderSurfaceCreationArgs&) override;
    void createRenderSurface(const compositionengine::RenderSurfaceCreationArgs&) override;
@@ -88,7 +88,7 @@ private:
    DisplayId mId;
    DisplayId mId;
    bool mIsDisconnected = false;
    bool mIsDisconnected = false;
    Hwc2::PowerAdvisor* mPowerAdvisor = nullptr;
    Hwc2::PowerAdvisor* mPowerAdvisor = nullptr;
    int32_t mPreferredBootDisplayModeId = -1;
    int32_t mPreferredBootHwcConfigId = -1;
};
};


// This template factory function standardizes the implementation details of the
// This template factory function standardizes the implementation details of the
+1 −1
Original line number Original line Diff line number Diff line
@@ -34,7 +34,7 @@ public:
    MOCK_CONST_METHOD0(getId, DisplayId());
    MOCK_CONST_METHOD0(getId, DisplayId());
    MOCK_CONST_METHOD0(isSecure, bool());
    MOCK_CONST_METHOD0(isSecure, bool());
    MOCK_CONST_METHOD0(isVirtual, bool());
    MOCK_CONST_METHOD0(isVirtual, bool());
    MOCK_CONST_METHOD0(getPreferredBootModeId, int32_t());
    MOCK_CONST_METHOD0(getPreferredBootHwcConfigId, int32_t());


    MOCK_METHOD0(disconnect, void());
    MOCK_METHOD0(disconnect, void());


+3 −3
Original line number Original line Diff line number Diff line
@@ -66,7 +66,7 @@ void Display::setConfiguration(const compositionengine::DisplayCreationArgs& arg
    std::optional<hal::HWConfigId> preferredBootModeId =
    std::optional<hal::HWConfigId> preferredBootModeId =
            getCompositionEngine().getHwComposer().getPreferredBootDisplayMode(*physicalId);
            getCompositionEngine().getHwComposer().getPreferredBootDisplayMode(*physicalId);
    if (preferredBootModeId.has_value()) {
    if (preferredBootModeId.has_value()) {
        mPreferredBootDisplayModeId = static_cast<int32_t>(preferredBootModeId.value());
        mPreferredBootHwcConfigId = static_cast<int32_t>(preferredBootModeId.value());
    }
    }
}
}


@@ -90,8 +90,8 @@ std::optional<DisplayId> Display::getDisplayId() const {
    return mId;
    return mId;
}
}


int32_t Display::getPreferredBootModeId() const {
int32_t Display::getPreferredBootHwcConfigId() const {
    return mPreferredBootDisplayModeId;
    return mPreferredBootHwcConfigId;
}
}


void Display::disconnect() {
void Display::disconnect() {
+16 −1
Original line number Original line Diff line number Diff line
@@ -235,6 +235,15 @@ DisplayModePtr DisplayDevice::getMode(DisplayModeId modeId) const {
    return nullptr;
    return nullptr;
}
}


DisplayModePtr DisplayDevice::getModefromHwcId(uint32_t hwcId) const {
    const auto it = std::find_if(mSupportedModes.begin(), mSupportedModes.end(),
                                 [&](DisplayModePtr mode) { return mode->getHwcId() == hwcId; });
    if (it != mSupportedModes.end()) {
        return *it;
    }
    return nullptr;
}

nsecs_t DisplayDevice::getVsyncPeriodFromHWC() const {
nsecs_t DisplayDevice::getVsyncPeriodFromHWC() const {
    const auto physicalId = getPhysicalId();
    const auto physicalId = getPhysicalId();
    if (!mHwComposer.isConnected(physicalId)) {
    if (!mHwComposer.isConnected(physicalId)) {
@@ -460,7 +469,13 @@ HdrCapabilities DisplayDevice::getHdrCapabilities() const {
}
}


ui::DisplayModeId DisplayDevice::getPreferredBootModeId() const {
ui::DisplayModeId DisplayDevice::getPreferredBootModeId() const {
    return mCompositionDisplay->getPreferredBootModeId();
    const auto preferredBootHwcModeId = mCompositionDisplay->getPreferredBootHwcConfigId();
    const auto mode = getModefromHwcId(preferredBootHwcModeId);
    if (mode == nullptr) {
        ALOGE("%s: invalid display mode (%d)", __FUNCTION__, preferredBootHwcModeId);
        return BAD_VALUE;
    }
    return mode->getId().value();
}
}


void DisplayDevice::enableRefreshRateOverlay(bool enable, bool showSpinnner) {
void DisplayDevice::enableRefreshRateOverlay(bool enable, bool showSpinnner) {
Loading