Loading services/surfaceflinger/Scheduler/EventThread.cpp +8 −1 Original line number Diff line number Diff line Loading @@ -62,6 +62,8 @@ std::string toString(VSyncRequest request) { return "VSyncRequest::None"; case VSyncRequest::Single: return "VSyncRequest::Single"; case VSyncRequest::SingleSuppressCallback: return "VSyncRequest::SingleSuppressCallback"; default: return StringPrintf("VSyncRequest::Periodic{period=%d}", vsyncPeriod(request)); } Loading Loading @@ -267,6 +269,8 @@ void EventThread::requestNextVsync(const sp<EventThreadConnection>& connection) if (connection->vsyncRequest == VSyncRequest::None) { connection->vsyncRequest = VSyncRequest::Single; mCondition.notify_all(); } else if (connection->vsyncRequest == VSyncRequest::SingleSuppressCallback) { connection->vsyncRequest = VSyncRequest::Single; } } Loading Loading @@ -451,8 +455,11 @@ bool EventThread::shouldConsumeEvent(const DisplayEventReceiver::Event& event, switch (connection->vsyncRequest) { case VSyncRequest::None: return false; case VSyncRequest::Single: case VSyncRequest::SingleSuppressCallback: connection->vsyncRequest = VSyncRequest::None; return false; case VSyncRequest::Single: connection->vsyncRequest = VSyncRequest::SingleSuppressCallback; return true; case VSyncRequest::Periodic: return true; Loading services/surfaceflinger/Scheduler/EventThread.h +5 −2 Original line number Diff line number Diff line Loading @@ -50,8 +50,11 @@ class TokenManager; using ResyncCallback = std::function<void()>; enum class VSyncRequest { None = -1, Single = 0, None = -2, // Single wakes up for the next two frames to avoid scheduler overhead Single = -1, // SingleSuppressCallback only wakes up for the next frame SingleSuppressCallback = 0, Periodic = 1, // Subsequent values are periods. }; Loading Loading
services/surfaceflinger/Scheduler/EventThread.cpp +8 −1 Original line number Diff line number Diff line Loading @@ -62,6 +62,8 @@ std::string toString(VSyncRequest request) { return "VSyncRequest::None"; case VSyncRequest::Single: return "VSyncRequest::Single"; case VSyncRequest::SingleSuppressCallback: return "VSyncRequest::SingleSuppressCallback"; default: return StringPrintf("VSyncRequest::Periodic{period=%d}", vsyncPeriod(request)); } Loading Loading @@ -267,6 +269,8 @@ void EventThread::requestNextVsync(const sp<EventThreadConnection>& connection) if (connection->vsyncRequest == VSyncRequest::None) { connection->vsyncRequest = VSyncRequest::Single; mCondition.notify_all(); } else if (connection->vsyncRequest == VSyncRequest::SingleSuppressCallback) { connection->vsyncRequest = VSyncRequest::Single; } } Loading Loading @@ -451,8 +455,11 @@ bool EventThread::shouldConsumeEvent(const DisplayEventReceiver::Event& event, switch (connection->vsyncRequest) { case VSyncRequest::None: return false; case VSyncRequest::Single: case VSyncRequest::SingleSuppressCallback: connection->vsyncRequest = VSyncRequest::None; return false; case VSyncRequest::Single: connection->vsyncRequest = VSyncRequest::SingleSuppressCallback; return true; case VSyncRequest::Periodic: return true; Loading
services/surfaceflinger/Scheduler/EventThread.h +5 −2 Original line number Diff line number Diff line Loading @@ -50,8 +50,11 @@ class TokenManager; using ResyncCallback = std::function<void()>; enum class VSyncRequest { None = -1, Single = 0, None = -2, // Single wakes up for the next two frames to avoid scheduler overhead Single = -1, // SingleSuppressCallback only wakes up for the next frame SingleSuppressCallback = 0, Periodic = 1, // Subsequent values are periods. }; Loading