e_output: called separately e_plane_fetch and e_plane_commit 68/126068/2
authorChangyeon Lee <cyeon.lee@samsung.com>
Mon, 17 Apr 2017 06:58:42 +0000 (15:58 +0900)
committerchangyeon lee <cyeon.lee@samsung.com>
Thu, 11 May 2017 04:16:37 +0000 (04:16 +0000)
- 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

index b2ec1c0..6a25068 100644 (file)
@@ -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");