derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=20f52cd60703d8e3fc1496117a2c8cf9119b6284

commit 20f52cd60703d8e3fc1496117a2c8cf9119b6284
Author: Derek Foreman <der...@osg.samsung.com>
Date:   Mon Nov 14 14:30:11 2016 -0600

    ecore_evas_drm: Fix bugs in pending tracking
    
    This has been dead wrong for a while but only recently became a
    showstopper when another bug was fixed that made this one manifest.
---
 src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c 
b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index 2d8e789..ac970f5 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -630,9 +630,14 @@ _cb_pageflip(int fd EINA_UNUSED, unsigned int frame 
EINA_UNUSED, unsigned int se
         double t = (double)sec + ((double)usec / 1000000);
 
         ecore_evas_animator_tick(ee, NULL, t);
+        edata->pending = EINA_TRUE;
+        ecore_drm2_fb_flip(NULL, edata->output);
+     }
+   else if (ret)
+     {
+        edata->pending = EINA_TRUE;
         ecore_drm2_fb_flip(NULL, edata->output);
      }
-   else if (ret) ecore_drm2_fb_flip(NULL, edata->output);
 }
 
 static void
@@ -654,6 +659,7 @@ _drm_animator_register(Ecore_Evas *ee)
    edata = ee->engine.data;
    edata->ticking = EINA_TRUE;
    if (!edata->pending) ecore_drm2_fb_flip(NULL, edata->output);
+   edata->pending = EINA_TRUE;
 }
 
 static void

-- 


Reply via email to