From 16de3bfa8d2135d49bf9f5e1479a2c048a5a5e69 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Mon, 17 Apr 2017 15:58:42 +0900 Subject: [PATCH] e_output: called separately e_plane_fetch and e_plane_commit - tdm doesn't support that individual layer commit yet. so we need to call commit of all plane at the same time e_plane_commit for preventing flickering. Change-Id: I05c15beea8f8c58def18b76b00ebd83add430d33 --- src/bin/e_output.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/bin/e_output.c b/src/bin/e_output.c index b2ec1c0aec..6a25068fef 100644 --- a/src/bin/e_output.c +++ b/src/bin/e_output.c @@ -843,26 +843,29 @@ e_output_commit(E_Output *output) EINA_LIST_FOREACH(output->planes, l, plane) { if (e_plane_is_fb_target(plane) && plane->ec) - fb_hwc_on = EINA_TRUE; + fb_hwc_on = EINA_TRUE; if (!e_plane_fetch(plane)) continue; - if (plane->need_unset_commit && !fb_hwc_on && !fb_commit) - continue; - if (output->dpms == E_OUTPUT_DPMS_OFF) { - if (!plane->need_unset_commit) - e_plane_unfetch(plane); - - continue; + if (!plane->need_unset_commit) + e_plane_unfetch(plane); } if (e_plane_is_fb_target(plane)) - { - _e_output_update_fps(); - fb_commit = EINA_TRUE; - } + fb_commit = EINA_TRUE; + } + + if (output->dpms == E_OUTPUT_DPMS_OFF) return EINA_TRUE; + + EINA_LIST_FOREACH(output->planes, l, plane) + { + if (plane->need_unset_commit && !fb_hwc_on && !fb_commit) + continue; + + if (e_plane_is_fb_target(plane) && fb_commit) + _e_output_update_fps(); if (!e_plane_commit(plane)) ERR("fail to e_plane_commit"); -- 2.34.1