diff options
author | 2021-02-03 23:19:29 +0100 | |
---|---|---|
committer | 2021-02-17 14:55:22 +0100 | |
commit | 71db8892acc0c80c343141139bde8cfd3f037c4a (patch) | |
tree | 9f40ac7b2cf2d535d24d9e6eacf8c353e8dcabc8 /libs/hwui/JankTracker.h | |
parent | 5fdf7b8d26f3cd1a2f2fb8a441d40d33270d3b77 (diff) |
Add GPU completion to FrameMetrics (1/3)
- Add SurfaceStatsCallback to TransactionCompletedListener
- Register a callback in RenderProxy to be called when we have
surface stats from SF via the BLAST callback.
- Instead of finishing a frame for frame metrics reporting
immediately, wait until BLAST callback fires, note GPU completion
time and finish frame.
- Expose GPU_COMPLETION in FrameMetrics
- Modify TOTAL_DURATION to also include GPU_COMPLETION
Test: FrameMetricsListenerTest
Fixes: 171046219
Change-Id: I16fa1d80cfc4e7a5527c18fec7e885409f17ee4d
Diffstat (limited to 'libs/hwui/JankTracker.h')
-rw-r--r-- | libs/hwui/JankTracker.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/hwui/JankTracker.h b/libs/hwui/JankTracker.h index b3fbbfe98669..096455372923 100644 --- a/libs/hwui/JankTracker.h +++ b/libs/hwui/JankTracker.h @@ -84,12 +84,15 @@ private: // This is only used if we are in pipelined mode and are using HWC2, // otherwise it's 0. nsecs_t mDequeueTimeForgiveness = 0; - ProfileDataContainer mData; - ProfileDataContainer* mGlobalData; + ProfileDataContainer mData GUARDED_BY(mDataMutex); + ProfileDataContainer* mGlobalData GUARDED_BY(mDataMutex); ProfileDataDescription mDescription; // Ring buffer large enough for 2 seconds worth of frames RingBuffer<FrameInfo, 120> mFrames; + + // Mutex to protect acccess to mData and mGlobalData obtained from mGlobalData->getDataMutex + std::mutex& mDataMutex; }; } /* namespace uirenderer */ |