diff options
author | 2020-11-24 23:51:31 +0100 | |
---|---|---|
committer | 2020-12-10 16:17:14 +0100 | |
commit | 9c03b50a30c163ad4cee13455311812ef563db40 (patch) | |
tree | 380089958aada0c2e68d86a690b717c97547fe1e /services/surfaceflinger/TransactionCompletedThread.cpp | |
parent | 5814ab8b847af326de5c46a1b5f2409ff404fc3a (diff) |
Add Shared timeline jank classification listener (1/2)
Adds the ability to register a listener that gets informed about
SF' jank classifications via the TransactionCompleted interface
Bug: 17475548
Test: FrameTimelineTest
Test: Register listener, ensure data flows back
Change-Id: Ie42c508da605c03569eadab6ab18b7315b35d247
Diffstat (limited to 'services/surfaceflinger/TransactionCompletedThread.cpp')
-rw-r--r-- | services/surfaceflinger/TransactionCompletedThread.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/services/surfaceflinger/TransactionCompletedThread.cpp b/services/surfaceflinger/TransactionCompletedThread.cpp index ca244934e4..1797af4cf6 100644 --- a/services/surfaceflinger/TransactionCompletedThread.cpp +++ b/services/surfaceflinger/TransactionCompletedThread.cpp @@ -153,7 +153,7 @@ status_t TransactionCompletedThread::registerPendingCallbackHandle( } status_t TransactionCompletedThread::finalizePendingCallbackHandles( - const std::deque<sp<CallbackHandle>>& handles) { + const std::deque<sp<CallbackHandle>>& handles, const std::vector<JankData>& jankData) { if (handles.empty()) { return NO_ERROR; } @@ -186,7 +186,7 @@ status_t TransactionCompletedThread::finalizePendingCallbackHandles( ALOGW("cannot find listener in mPendingTransactions"); } - status_t err = addCallbackHandle(handle); + status_t err = addCallbackHandle(handle, jankData); if (err != NO_ERROR) { ALOGE("could not add callback handle"); return err; @@ -204,7 +204,7 @@ status_t TransactionCompletedThread::registerUnpresentedCallbackHandle( return BAD_VALUE; } - return addCallbackHandle(handle); + return addCallbackHandle(handle, std::vector<JankData>()); } status_t TransactionCompletedThread::findTransactionStats( @@ -225,7 +225,8 @@ status_t TransactionCompletedThread::findTransactionStats( return BAD_VALUE; } -status_t TransactionCompletedThread::addCallbackHandle(const sp<CallbackHandle>& handle) { +status_t TransactionCompletedThread::addCallbackHandle(const sp<CallbackHandle>& handle, + const std::vector<JankData>& jankData) { // If we can't find the transaction stats something has gone wrong. The client should call // startRegistration before trying to add a callback handle. TransactionStats* transactionStats; @@ -246,7 +247,7 @@ status_t TransactionCompletedThread::addCallbackHandle(const sp<CallbackHandle>& handle->dequeueReadyTime); transactionStats->surfaceStats.emplace_back(surfaceControl, handle->acquireTime, handle->previousReleaseFence, - handle->transformHint, eventStats); + handle->transformHint, eventStats, jankData); } return NO_ERROR; } |