From 8507b512a050a5e8f25afae407217491d1c126fc Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Thu, 14 Jul 2016 14:35:03 -0500 Subject: [PATCH] ecore_drm2: Don't disable custom ticker if flip fails When using a mix of vblank and pageflip events like we're stuck with now a failed flip is going to happen sooner or later. We fix this by triple buffering. We shouldn't turn off the custom ticker. --- src/modules/evas/engines/drm/evas_outbuf.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/modules/evas/engines/drm/evas_outbuf.c b/src/modules/evas/engines/drm/evas_outbuf.c index d43a35b..3d9f62e 100644 --- a/src/modules/evas/engines/drm/evas_outbuf.c +++ b/src/modules/evas/engines/drm/evas_outbuf.c @@ -90,8 +90,7 @@ _cb_pageflip(int fd EINA_UNUSED, unsigned int frame EINA_UNUSED, unsigned int se if (next) { ecore_drm2_output_next_fb_set(ob->priv.output, NULL); - if (ecore_drm2_fb_flip(next, ob->priv.output, ob) < 0) - _outbuf_tick_source_set(NULL); + ecore_drm2_fb_flip(next, ob->priv.output, ob); } } @@ -122,14 +121,7 @@ _outbuf_buffer_swap(Outbuf *ob, Eina_Rectangle *rects, unsigned int count) if (!ofb) return; ecore_drm2_fb_dirty(ofb->fb, rects, count); - if (ecore_drm2_fb_flip(ofb->fb, ob->priv.output, ob) < 0) - { - _outbuf_tick_source_set(NULL); - ofb->busy = EINA_FALSE; - ofb->drawn = EINA_FALSE; - ofb->age = 0; - return; - } + ecore_drm2_fb_flip(ofb->fb, ob->priv.output, ob); ofb->busy = EINA_TRUE; ofb->drawn = EINA_TRUE; -- 2.7.4