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

Commit d1b89db9 authored by Jorim Jaggi's avatar Jorim Jaggi Committed by Android (Google) Code Review
Browse files

Merge "Avoid calling into HWC in onFirstRef"

parents 9cda20d2 bd6480f7
Loading
Loading
Loading
Loading
+1 −16
Original line number Original line Diff line number Diff line
@@ -132,22 +132,7 @@ Layer::Layer(SurfaceFlinger* flinger, const sp<Client>& client, const String8& n
    CompositorTiming compositorTiming;
    CompositorTiming compositorTiming;
    flinger->getCompositorTiming(&compositorTiming);
    flinger->getCompositorTiming(&compositorTiming);
    mFrameEventHistory.initializeCompositorTiming(compositorTiming);
    mFrameEventHistory.initializeCompositorTiming(compositorTiming);
}
    mFrameTracker.setDisplayRefreshPeriod(compositorTiming.interval);

void Layer::onFirstRef() NO_THREAD_SAFETY_ANALYSIS {
    if (!isCreatedFromMainThread()) {
        // Grab the SF state lock during this since it's the only way to safely access HWC
        mFlinger->mStateLock.lock();
    }

    const auto& hwc = mFlinger->getHwComposer();
    const auto& activeConfig = hwc.getActiveConfig(HWC_DISPLAY_PRIMARY);
    nsecs_t displayPeriod = activeConfig->getVsyncPeriod();
    mFrameTracker.setDisplayRefreshPeriod(displayPeriod);

    if (!isCreatedFromMainThread()) {
        mFlinger->mStateLock.unlock();
    }
}
}


Layer::~Layer() {
Layer::~Layer() {
+0 −2
Original line number Original line Diff line number Diff line
@@ -604,8 +604,6 @@ protected:
              : mFlinger(flinger), mLayer(layer) {}
              : mFlinger(flinger), mLayer(layer) {}
    };
    };


    virtual void onFirstRef();

    friend class impl::SurfaceInterceptor;
    friend class impl::SurfaceInterceptor;


    void commitTransaction(const State& stateToCommit);
    void commitTransaction(const State& stateToCommit);