diff options
author | 2016-07-20 15:38:12 -0700 | |
---|---|---|
committer | 2016-07-20 19:19:42 -0700 | |
commit | c5da271eec001da9e11a2786f2618a45257439c3 (patch) | |
tree | 223acc4d11040d2e5db1983477c8f5d49ae65f5e /services/surfaceflinger/SurfaceFlinger.cpp | |
parent | 90093ba0191066d68b218fe344835c03db96cfa6 (diff) |
HWC2: Add properties to revert latching changes
Adds two properties:
debug.sf.latch_unsignaled - This causes SurfaceFlinger to latch
buffers even if their fences haven't signaled
debug.sf.disable_backpressure - This causes SurfaceFlinger to skip
propagating backpressure back to apps by not running when it
detects that a prior composition missed hardware vsync
Bug: 30216498
Change-Id: Idd70f472ec567a4bc03352f30f201f434cf5d660
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index f298399ac5..8baf28c1c9 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -179,6 +179,10 @@ SurfaceFlinger::SurfaceFlinger() } ALOGI_IF(mDebugRegion, "showupdates enabled"); ALOGI_IF(mDebugDDMS, "DDMS debugging enabled"); + + property_get("debug.sf.disable_backpressure", value, "0"); + mPropagateBackpressure = !atoi(value); + ALOGI_IF(!mPropagateBackpressure, "Disabling backpressure propagation"); } void SurfaceFlinger::onFirstRef() @@ -924,7 +928,7 @@ void SurfaceFlinger::onMessageReceived(int32_t what) { mPreviousPresentFence != Fence::NO_FENCE && mPreviousPresentFence->getSignalTime() == INT64_MAX; ATRACE_INT("FrameMissed", static_cast<int>(frameMissed)); - if (frameMissed) { + if (mPropagateBackpressure && frameMissed) { signalLayerUpdate(); break; } |