summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/RegionSamplingThread.h
diff options
context:
space:
mode:
author John Dias <joaodias@google.com> 2019-06-18 17:05:26 -0700
committer John Dias <joaodias@google.com> 2019-06-19 13:46:16 -0700
commit84be783ff179fd6589bd01091f08f174f1f6a95d (patch)
tree0c1d695b87a4f86d37306fb358010c1c74a7ee10 /services/surfaceflinger/RegionSamplingThread.h
parent7fbb0831bf1f803e8faa9e34e43efdd6b0dc05c7 (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.h2
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;