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;
                }

-- 


Reply via email to