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 /src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | |
parent | bf7814aca01e9589062eedcd0d7807b4f3f90ce2 (diff) |
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.
Diffstat (limited to 'src/modules/ecore_evas/engines/drm/ecore_evas_drm.c')
-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 | |||
630 | double t = (double)sec + ((double)usec / 1000000); | 630 | double t = (double)sec + ((double)usec / 1000000); |
631 | 631 | ||
632 | ecore_evas_animator_tick(ee, NULL, t); | 632 | ecore_evas_animator_tick(ee, NULL, t); |
633 | edata->pending = EINA_TRUE; | ||
634 | ecore_drm2_fb_flip(NULL, edata->output); | ||
635 | } | ||
636 | else if (ret) | ||
637 | { | ||
638 | edata->pending = EINA_TRUE; | ||
633 | ecore_drm2_fb_flip(NULL, edata->output); | 639 | ecore_drm2_fb_flip(NULL, edata->output); |
634 | } | 640 | } |
635 | else if (ret) ecore_drm2_fb_flip(NULL, edata->output); | ||
636 | } | 641 | } |
637 | 642 | ||
638 | static void | 643 | static void |
@@ -654,6 +659,7 @@ _drm_animator_register(Ecore_Evas *ee) | |||
654 | edata = ee->engine.data; | 659 | edata = ee->engine.data; |
655 | edata->ticking = EINA_TRUE; | 660 | edata->ticking = EINA_TRUE; |
656 | if (!edata->pending) ecore_drm2_fb_flip(NULL, edata->output); | 661 | if (!edata->pending) ecore_drm2_fb_flip(NULL, edata->output); |
662 | edata->pending = EINA_TRUE; | ||
657 | } | 663 | } |
658 | 664 | ||
659 | static void | 665 | static void |