summaryrefslogtreecommitdiff
path: root/drmdisplaycompositor.cpp
diff options
context:
space:
mode:
authorDavid Ung <davidu@nvidia.com>2016-01-19 17:24:49 -0800
committerDavid Ung <davidu@nvidia.com>2016-01-20 12:31:50 -0800
commit49d657d512b033addd8926eff7e735d6d36e641b (patch)
treed4ea10df375a983f4a099e9ed97eaea715811ade /drmdisplaycompositor.cpp
parent20dde297bf335e4b167090211ffea33ecdec6782 (diff)
drm_hwcomposer: Increase fence timeout upto 5x
Increase the fence wait value each time by a factor of 2. Bug: chrome-os-partner:48289 Test: Run apps and see no frame drops Change-Id: I9b7b910e5a8c9d287ea69b13dca0d4c1194ac86c Signed-off-by: David Ung <davidu@nvidia.com>
Diffstat (limited to 'drmdisplaycompositor.cpp')
-rw-r--r--drmdisplaycompositor.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/drmdisplaycompositor.cpp b/drmdisplaycompositor.cpp
index 29ecc75..1012828 100644
--- a/drmdisplaycompositor.cpp
+++ b/drmdisplaycompositor.cpp
@@ -664,11 +664,14 @@ int DrmDisplayCompositor::CommitFrame(DrmDisplayComposition *display_comp,
DrmHwcLayer &layer = layers[comp_plane.source_layer];
if (!test_only && layer.acquire_fence.get() >= 0) {
int acquire_fence = layer.acquire_fence.get();
+ int total_fence_timeout = 0;
for (int i = 0; i < kAcquireWaitTries; ++i) {
- ret = sync_wait(acquire_fence, kAcquireWaitTimeoutMs);
+ int fence_timeout = kAcquireWaitTimeoutMs * (1 << i);
+ total_fence_timeout += fence_timeout;
+ ret = sync_wait(acquire_fence, fence_timeout);
if (ret)
ALOGW("Acquire fence %d wait %d failed (%d). Total time %d",
- acquire_fence, i, ret, (i + 1) * kAcquireWaitTimeoutMs);
+ acquire_fence, i, ret, total_fence_timeout);
}
if (ret) {
ALOGE("Failed to wait for acquire %d/%d", acquire_fence, ret);