devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5535c049cdfeb0a5a3b192b08ccfeec7a78c7c99
commit 5535c049cdfeb0a5a3b192b08ccfeec7a78c7c99 Author: Derek Foreman <der...@osg.samsung.com> Date: Fri May 20 11:56:38 2016 -0500 evas-drm: Fix occasoinaly freezes We need to continue to tick even if we can't find a buffer - otherwise we'll stop updating forever. We also need to reset buffer busy bits to 0 if we run out of buffers or we'll never try to assign one. (The page flip handler would eventually clear the busy bit for the current buffer, but a few lines ago we just set that to NULL so it will never happen...) --- src/modules/evas/engines/drm/evas_outbuf.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/modules/evas/engines/drm/evas_outbuf.c b/src/modules/evas/engines/drm/evas_outbuf.c index 38feffd..ce7be06 100644 --- a/src/modules/evas/engines/drm/evas_outbuf.c +++ b/src/modules/evas/engines/drm/evas_outbuf.c @@ -50,15 +50,8 @@ _outbuf_tick_source_set(Outbuf *ob) static void _outbuf_tick_schedule(int fd EINA_UNUSED, void *data) { - Outbuf *ob; - Outbuf_Fb *ofb; - - ob = data; if (!ticking) return; - ofb = ob->priv.current; - if (!ofb) return; - drmVBlank vbl = { .request.type = DRM_VBLANK_RELATIVE | DRM_VBLANK_EVENT, @@ -382,6 +375,7 @@ _outbuf_fb_assign(Outbuf *ob) { if (ob->priv.ofb[i].valid) { + ob->priv.ofb[i].busy = 0; ob->priv.ofb[i].age = 0; ob->priv.ofb[i].drawn = EINA_FALSE; } --