e_plane_renderer: force release disp buffer if e20 doens't have dequeuable buffer 85/116285/3
authorChangyeon Lee <cyeon.lee@samsung.com>
Thu, 23 Feb 2017 03:42:34 +0000 (12:42 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Fri, 24 Feb 2017 08:27:02 +0000 (00:27 -0800)
Change-Id: Iaf02623fffaf125a5d28edba4eecb2f9ede6742f

src/bin/e_plane_renderer.c

index cf44e33be5cbf16a4165f03944fc3eea93e09c99..36780241b33e26df04058f52910ad9db41fb1f02 100644 (file)
@@ -417,6 +417,20 @@ _e_plane_renderer_client_exported_surfaces_release(E_Plane_Renderer_Client *rend
                      _e_plane_renderer_exported_surface_release(renderer, tsurface);
                }
           }
+
+        if (!plane->pending_commit && !tbm_surface_queue_can_dequeue(renderer->tqueue, 0))
+          {
+             EINA_LIST_FOREACH_SAFE(renderer->disp_surfaces, l_s, ll_s, tsurface)
+               {
+                  if (!tsurface) continue;
+
+                  if (tsurface != renderer->displaying_tsurface)
+                    {
+                       _e_plane_renderer_exported_surface_release(renderer, tsurface);
+                       ERR("Force release plane:%p tsurface:%p to queue:%p\n", plane, tsurface, renderer->tqueue);
+                    }
+               }
+          }
      }
 }