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

Commit 4d211cf5 authored by Ady Abraham's avatar Ady Abraham
Browse files

SF: add composer optional features

Test: SF unit tests

Change-Id: I7f177aae58d13e45dfdd54579722cec55dc21a3a
parent c8b70f79
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -253,6 +253,13 @@ AidlComposer::AidlComposer(const std::string& serviceName) {

AidlComposer::~AidlComposer() = default;

bool AidlComposer::isSupported(OptionalFeature feature) const {
    switch (feature) {
        case OptionalFeature::RefreshRateSwitching:
            return true;
    }
}

std::vector<IComposer::Capability> AidlComposer::getCapabilities() {
    std::vector<Capability> capabilities;
    const auto status = mAidlComposer->getCapabilities(&capabilities);
+2 −1
Original line number Diff line number Diff line
@@ -56,6 +56,8 @@ public:
    explicit AidlComposer(const std::string& serviceName);
    ~AidlComposer() override;

    bool isSupported(OptionalFeature) const;

    std::vector<IComposer::Capability> getCapabilities() override;
    std::string dumpDebugInfo() override;

@@ -178,7 +180,6 @@ public:
    Error setDisplayBrightness(Display display, float brightness) override;

    // Composer HAL 2.4
    bool isVsyncPeriodSwitchSupported() override { return true; }
    Error getDisplayCapabilities(Display display,
                                 std::vector<DisplayCapability>* outCapabilities) override;
    V2_4::Error getDisplayConnectionType(Display display,
+6 −1
Original line number Diff line number Diff line
@@ -75,6 +75,12 @@ public:

    virtual ~Composer() = 0;

    enum class OptionalFeature {
        RefreshRateSwitching,
    };

    virtual bool isSupported(OptionalFeature) const = 0;

    virtual std::vector<IComposer::Capability> getCapabilities() = 0;
    virtual std::string dumpDebugInfo() = 0;

@@ -200,7 +206,6 @@ public:
    virtual Error setDisplayBrightness(Display display, float brightness) = 0;

    // Composer HAL 2.4
    virtual bool isVsyncPeriodSwitchSupported() = 0;
    virtual Error getDisplayCapabilities(Display display,
                                         std::vector<DisplayCapability>* outCapabilities) = 0;
    virtual V2_4::Error getDisplayConnectionType(
+1 −1
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ void Display::onLayerDestroyed(hal::HWLayerId layerId) {
bool Display::isVsyncPeriodSwitchSupported() const {
    ALOGV("[%" PRIu64 "] isVsyncPeriodSwitchSupported()", mId);

    return mComposer.isVsyncPeriodSwitchSupported();
    return mComposer.isSupported(android::Hwc2::Composer::OptionalFeature::RefreshRateSwitching);
}

Error Display::getChangedCompositionTypes(std::unordered_map<HWC2::Layer*, Composition>* outTypes) {
+3 −1
Original line number Diff line number Diff line
@@ -159,8 +159,10 @@ void HWComposer::setCallback(HWC2::ComposerCallback* callback) {
    }
    mRegisteredCallback = true;

    const bool vsyncSwitchingSupported =
            mComposer->isSupported(Hwc2::Composer::OptionalFeature::RefreshRateSwitching);
    mComposer->registerCallback(
            sp<ComposerCallbackBridge>::make(callback, mComposer->isVsyncPeriodSwitchSupported()));
            sp<ComposerCallbackBridge>::make(callback, vsyncSwitchingSupported));
}

bool HWComposer::getDisplayIdentificationData(hal::HWDisplayId hwcDisplayId, uint8_t* outPort,
Loading