From: David Ung Date: Wed, 20 Jan 2016 01:24:49 +0000 (-0800) Subject: drm_hwcomposer: Increase fence timeout upto 5x X-Git-Tag: android-x86-6.0-r1~14 X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fexternal-drm_hwcomposer.git;a=commitdiff_plain;h=49d657d512b033addd8926eff7e735d6d36e641b 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 --- 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);