summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/SurfaceFlinger.cpp
diff options
context:
space:
mode:
author Dan Stoza <stoza@google.com> 2016-07-20 15:38:12 -0700
committer Steve Pfetsch <spfetsch@google.com> 2016-07-20 19:19:42 -0700
commitc5da271eec001da9e11a2786f2618a45257439c3 (patch)
tree223acc4d11040d2e5db1983477c8f5d49ae65f5e /services/surfaceflinger/SurfaceFlinger.cpp
parent90093ba0191066d68b218fe344835c03db96cfa6 (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.cpp6
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;
}