diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2016-11-14 14:30:11 -0600 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2016-11-14 14:30:11 -0600 |
commit | 20f52cd60703d8e3fc1496117a2c8cf9119b6284 (patch) | |
tree | 2dcd2dd43bb23c680e1c9509fdae57bdc9b53aed | |
parent | bf7814aca01e9589062eedcd0d7807b4f3f90ce2 (diff) | |
download | efl-20f52cd60703d8e3fc1496117a2c8cf9119b6284.tar.gz |
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.
-rw-r--r-- | src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 8 |
1 files changed, 7 insertions, 1 deletions
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 2d8e7897fb..ac970f5017 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 |