diff options
author | 2019-06-18 17:05:26 -0700 | |
---|---|---|
committer | 2019-06-19 13:46:16 -0700 | |
commit | 84be783ff179fd6589bd01091f08f174f1f6a95d (patch) | |
tree | 0c1d695b87a4f86d37306fb358010c1c74a7ee10 /services/surfaceflinger/RegionSamplingThread.h | |
parent | 7fbb0831bf1f803e8faa9e34e43efdd6b0dc05c7 (diff) |
SF: delay region sampling when short on time
In a number of janky traces, particularly at high
frame rates, we've seen the surfaceflinger thread
overrunning its time slot. In some of those cases,
the surfaceflinger thread is doing region-sampling.
This change causes region-sampling to check how much
time is left until the next vsync before deciding
whether to sample this frame. If low on time,
it will defer the sampling to a later frame.
Bug: 133779857
Test: trace inspection from scrolling in various apps
Change-Id: I92c2368e80033c1ba6e27f947a456d14db02064c
Diffstat (limited to 'services/surfaceflinger/RegionSamplingThread.h')
-rw-r--r-- | services/surfaceflinger/RegionSamplingThread.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/services/surfaceflinger/RegionSamplingThread.h b/services/surfaceflinger/RegionSamplingThread.h index 3c6fcf3872..96ffe207e4 100644 --- a/services/surfaceflinger/RegionSamplingThread.h +++ b/services/surfaceflinger/RegionSamplingThread.h @@ -117,7 +117,7 @@ private: std::condition_variable_any mCondition; bool mRunning GUARDED_BY(mThreadControlMutex) = true; bool mSampleRequested GUARDED_BY(mThreadControlMutex) = false; - bool mDiscardedFrames GUARDED_BY(mThreadControlMutex) = false; + uint32_t mDiscardedFrames GUARDED_BY(mThreadControlMutex) = 0; std::chrono::nanoseconds lastSampleTime GUARDED_BY(mThreadControlMutex); std::mutex mSamplingMutex; |