drm_hwcomposer: Set timeouts for fence waits
Instead of waiting forever for fences, set some reasonable timeouts
so we can move on with life if a fence doesn't signal.
BUG=chrome-os-partner:45868
TEST=Tested on smaug with osmos, recovered from fence timeouts
Change-Id: I7f18d684d483d789f228cbad8d5a3e43ac898a43
Signed-off-by: Sean Paul <seanpaul@chromium.org>
diff --git a/drmdisplaycompositor.cpp b/drmdisplaycompositor.cpp
index 6ee145f..82da4f2 100644
--- a/drmdisplaycompositor.cpp
+++ b/drmdisplaycompositor.cpp
@@ -174,7 +174,7 @@
const DrmMode &mode = connector->active_mode();
DrmFramebuffer &fb = framebuffers_[framebuffer_index_];
- ret = fb.WaitReleased(-1);
+ ret = fb.WaitReleased(fb.kReleaseWaitTimeoutMs);
if (ret) {
ALOGE("Failed to wait for framebuffer release %d", ret);
return ret;
@@ -244,7 +244,7 @@
for (DrmCompositionLayer &layer : *layers) {
int acquire_fence = layer.acquire_fence.get();
if (acquire_fence >= 0) {
- ret = sync_wait(acquire_fence, -1);
+ ret = sync_wait(acquire_fence, kAcquireWaitTimeoutMs);
if (ret) {
ALOGE("Failed to wait for acquire %d/%d", acquire_fence, ret);
drmModePropertySetFree(pset);