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

Commit b0433bc7 authored by Ady Abraham's avatar Ady Abraham
Browse files

SurfaceFlinger: plumb composer 2.4 onSeamlessPossible

Plumb onSeamlessPossible callback to SurfaceFlinger.

Test: rev up composer to 2.4
Bug: 141329414
Change-Id: I2166b8ea066002c76781aacbcc985f85f7c255a8
parent 090d42c7
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1215,6 +1215,12 @@ Return<void> HardwareComposer::ComposerCallback::onVsyncPeriodTimingChanged(
  return Void();
}

Return<void> HardwareComposer::ComposerCallback::onSeamlessPossible(
    Hwc2::Display /*display*/) {
  LOG_ALWAYS_FATAL("Unexpected onSeamlessPossible callback");
  return Void();
}

void HardwareComposer::ComposerCallback::SetVsyncService(
    const sp<VsyncService>& vsync_service) {
  std::lock_guard<std::mutex> lock(mutex_);
+1 −0
Original line number Diff line number Diff line
@@ -381,6 +381,7 @@ class HardwareComposer {
    hardware::Return<void> onVsyncPeriodTimingChanged(
        Hwc2::Display display,
        const Hwc2::VsyncPeriodChangeTimeline& updatedTimeline) override;
    hardware::Return<void> onSeamlessPossible(Hwc2::Display display) override;

    bool GotFirstHotplug() { return got_first_hotplug_; }
    void SetVsyncService(const sp<VsyncService>& vsync_service);
+1 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ class ComposerCallback {
    virtual void onVsyncPeriodTimingChangedReceived(
            int32_t sequenceId, hwc2_display_t display,
            const hwc_vsync_period_change_timeline_t& updatedTimeline) = 0;
    virtual void onSeamlessPossible(int32_t sequenceId, hwc2_display_t display) = 0;

    virtual ~ComposerCallback() = default;
};
+5 −0
Original line number Diff line number Diff line
@@ -125,6 +125,11 @@ public:
        return android::hardware::Void();
    }

    android::hardware::Return<void> onSeamlessPossible(android::Hwc2::Display display) override {
        mCallback->onSeamlessPossible(mSequenceId, display);
        return android::hardware::Void();
    }

private:
    HWC2::ComposerCallback* mCallback;
    const int32_t mSequenceId;
+5 −0
Original line number Diff line number Diff line
@@ -1570,6 +1570,11 @@ void SurfaceFlinger::onVsyncPeriodTimingChangedReceived(
    mScheduler->onNewVsyncPeriodChangeTimeline(updatedTimeline);
}

void SurfaceFlinger::onSeamlessPossible(int32_t /*sequenceId*/, hwc2_display_t /*display*/) {
    // TODO(b/142753666): use constraints when calling to setActiveConfigWithConstrains and
    // use this callback to know when to retry in case of SEAMLESS_NOT_POSSIBLE.
}

void SurfaceFlinger::onRefreshReceived(int sequenceId, hwc2_display_t /*hwcDisplayId*/) {
    Mutex::Autolock lock(mStateLock);
    if (sequenceId != getBE().mComposerSequenceId) {
Loading