Loading services/surfaceflinger/Scheduler/MessageQueue.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ void MessageQueue::vsyncCallback(nsecs_t vsyncTime, nsecs_t targetWakeupTime, ns mHandler->dispatchFrame(vsyncId, expectedVsyncTime); } void MessageQueue::initVsync(std::shared_ptr<scheduler::VSyncDispatch> dispatch, void MessageQueue::initVsyncInternal(std::shared_ptr<scheduler::VSyncDispatch> dispatch, frametimeline::TokenManager& tokenManager, std::chrono::nanoseconds workDuration) { std::unique_ptr<scheduler::VSyncCallbackRegistration> oldRegistration; Loading @@ -87,7 +87,7 @@ void MessageQueue::initVsync(std::shared_ptr<scheduler::VSyncDispatch> dispatch, } // See comments in onNewVsyncSchedule. Today, oldRegistration should be // empty, but nothing prevents us from calling initVsync multiple times, so // empty, but nothing prevents us from calling initVsyncInternal multiple times, so // go ahead and destruct it outside the lock for safety. oldRegistration.reset(); } Loading services/surfaceflinger/Scheduler/MessageQueue.h +5 −4 Original line number Diff line number Diff line Loading @@ -65,7 +65,8 @@ class MessageQueue { public: virtual ~MessageQueue() = default; virtual void initVsync(std::shared_ptr<scheduler::VSyncDispatch>, frametimeline::TokenManager&, virtual void initVsyncInternal(std::shared_ptr<scheduler::VSyncDispatch>, frametimeline::TokenManager&, std::chrono::nanoseconds workDuration) = 0; virtual void destroyVsync() = 0; virtual void setDuration(std::chrono::nanoseconds workDuration) = 0; Loading Loading @@ -137,7 +138,7 @@ private: public: explicit MessageQueue(ICompositor&); void initVsync(std::shared_ptr<scheduler::VSyncDispatch>, frametimeline::TokenManager&, void initVsyncInternal(std::shared_ptr<scheduler::VSyncDispatch>, frametimeline::TokenManager&, std::chrono::nanoseconds workDuration) override; void destroyVsync() override; void setDuration(std::chrono::nanoseconds workDuration) override; Loading services/surfaceflinger/Scheduler/Scheduler.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,11 @@ Scheduler::~Scheduler() { demotePacesetterDisplay(); } void Scheduler::initVsync(frametimeline::TokenManager& tokenManager, std::chrono::nanoseconds workDuration) { Impl::initVsyncInternal(getVsyncSchedule()->getDispatch(), tokenManager, workDuration); } void Scheduler::startTimers() { using namespace sysprop; using namespace std::string_literals; Loading services/surfaceflinger/Scheduler/Scheduler.h +1 −1 Original line number Diff line number Diff line Loading @@ -131,7 +131,7 @@ public: void run(); using Impl::initVsync; void initVsync(frametimeline::TokenManager&, std::chrono::nanoseconds workDuration); using Impl::getScheduledFrameTime; using Impl::setDuration; Loading services/surfaceflinger/SurfaceFlinger.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -4233,8 +4233,7 @@ void SurfaceFlinger::initScheduler(const sp<const DisplayDevice>& display) { /* workDuration */ activeRefreshRate.getPeriod(), /* readyDuration */ configs.late.sfWorkDuration); mScheduler->initVsync(mScheduler->getVsyncSchedule()->getDispatch(), *mFrameTimeline->getTokenManager(), configs.late.sfWorkDuration); mScheduler->initVsync(*mFrameTimeline->getTokenManager(), configs.late.sfWorkDuration); mRegionSamplingThread = sp<RegionSamplingThread>::make(*this, Loading Loading
services/surfaceflinger/Scheduler/MessageQueue.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ void MessageQueue::vsyncCallback(nsecs_t vsyncTime, nsecs_t targetWakeupTime, ns mHandler->dispatchFrame(vsyncId, expectedVsyncTime); } void MessageQueue::initVsync(std::shared_ptr<scheduler::VSyncDispatch> dispatch, void MessageQueue::initVsyncInternal(std::shared_ptr<scheduler::VSyncDispatch> dispatch, frametimeline::TokenManager& tokenManager, std::chrono::nanoseconds workDuration) { std::unique_ptr<scheduler::VSyncCallbackRegistration> oldRegistration; Loading @@ -87,7 +87,7 @@ void MessageQueue::initVsync(std::shared_ptr<scheduler::VSyncDispatch> dispatch, } // See comments in onNewVsyncSchedule. Today, oldRegistration should be // empty, but nothing prevents us from calling initVsync multiple times, so // empty, but nothing prevents us from calling initVsyncInternal multiple times, so // go ahead and destruct it outside the lock for safety. oldRegistration.reset(); } Loading
services/surfaceflinger/Scheduler/MessageQueue.h +5 −4 Original line number Diff line number Diff line Loading @@ -65,7 +65,8 @@ class MessageQueue { public: virtual ~MessageQueue() = default; virtual void initVsync(std::shared_ptr<scheduler::VSyncDispatch>, frametimeline::TokenManager&, virtual void initVsyncInternal(std::shared_ptr<scheduler::VSyncDispatch>, frametimeline::TokenManager&, std::chrono::nanoseconds workDuration) = 0; virtual void destroyVsync() = 0; virtual void setDuration(std::chrono::nanoseconds workDuration) = 0; Loading Loading @@ -137,7 +138,7 @@ private: public: explicit MessageQueue(ICompositor&); void initVsync(std::shared_ptr<scheduler::VSyncDispatch>, frametimeline::TokenManager&, void initVsyncInternal(std::shared_ptr<scheduler::VSyncDispatch>, frametimeline::TokenManager&, std::chrono::nanoseconds workDuration) override; void destroyVsync() override; void setDuration(std::chrono::nanoseconds workDuration) override; Loading
services/surfaceflinger/Scheduler/Scheduler.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,11 @@ Scheduler::~Scheduler() { demotePacesetterDisplay(); } void Scheduler::initVsync(frametimeline::TokenManager& tokenManager, std::chrono::nanoseconds workDuration) { Impl::initVsyncInternal(getVsyncSchedule()->getDispatch(), tokenManager, workDuration); } void Scheduler::startTimers() { using namespace sysprop; using namespace std::string_literals; Loading
services/surfaceflinger/Scheduler/Scheduler.h +1 −1 Original line number Diff line number Diff line Loading @@ -131,7 +131,7 @@ public: void run(); using Impl::initVsync; void initVsync(frametimeline::TokenManager&, std::chrono::nanoseconds workDuration); using Impl::getScheduledFrameTime; using Impl::setDuration; Loading
services/surfaceflinger/SurfaceFlinger.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -4233,8 +4233,7 @@ void SurfaceFlinger::initScheduler(const sp<const DisplayDevice>& display) { /* workDuration */ activeRefreshRate.getPeriod(), /* readyDuration */ configs.late.sfWorkDuration); mScheduler->initVsync(mScheduler->getVsyncSchedule()->getDispatch(), *mFrameTimeline->getTokenManager(), configs.late.sfWorkDuration); mScheduler->initVsync(*mFrameTimeline->getTokenManager(), configs.late.sfWorkDuration); mRegionSamplingThread = sp<RegionSamplingThread>::make(*this, Loading