drm_hwcomposer: Initialize timeline_next to 1
Initialize timeline_next to 1, because point 0 will be the very first
set operation. Since we increment every time set() is called,
initializing to 0 would cause an off-by-one error where
surfaceflinger would always composite on the front buffer.
Change-Id: I1e67c36864716595eb489286a7db3f1dcb04f67e
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-on: https://chrome-internal-review.googlesource.com/200735
Tested-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Allen Martin <amartin@nvidia.com>
Reviewed-by: Sean Paul <seanpaul@google.com>
diff --git a/hwcomposer.cpp b/hwcomposer.cpp
index 1c2b8b2..3f20e53 100644
--- a/hwcomposer.cpp
+++ b/hwcomposer.cpp
@@ -1194,7 +1194,14 @@
return ret;
}
hd->timeline_fd = ret;
- hd->timeline_next = 0;
+
+ /*
+ * Initialize timeline_next to 1, because point 0 will be the very first
+ * set operation. Since we increment every time set() is called,
+ * initializing to 0 would cause an off-by-one error where
+ * surfaceflinger would composite on the front buffer.
+ */
+ hd->timeline_next = 1;
ret = hwc_set_initial_config(hd);
if (ret) {