e_plane: check ec valid before dequeue surface for sending to ec 86/115086/3
authorChangyeon Lee <cyeon.lee@samsung.com>
Thu, 16 Feb 2017 06:49:01 +0000 (15:49 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Thu, 16 Feb 2017 08:29:03 +0000 (17:29 +0900)
Change-Id: I3a07d75b0f558cce21bd350b1da635876fa703d5

src/bin/e_plane.c
src/bin/e_plane_renderer.c
src/bin/e_plane_renderer.h

index b29dbf2..d373286 100644 (file)
@@ -480,6 +480,8 @@ _e_plane_surface_send_dequeuable_surfaces(E_Plane *plane)
    tbm_surface_h tsurface = NULL;
    E_Plane_Renderer *renderer = plane->renderer;
 
+   if (!e_plane_renderer_ec_valid_check(renderer, renderer->ec)) return;
+
    /* export dequeuable surface */
    while(e_plane_renderer_surface_queue_can_dequeue(renderer))
      {
index b52eecd..6191f51 100644 (file)
@@ -986,6 +986,20 @@ e_plane_renderer_del(E_Plane_Renderer *renderer)
 }
 
 EINTERN Eina_Bool
+e_plane_renderer_ec_valid_check(E_Plane_Renderer *renderer, E_Client *ec)
+{
+   struct wayland_tbm_client_queue * cqueue = NULL;
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(renderer, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(ec, EINA_FALSE);
+
+   cqueue = _e_plane_renderer_wayland_tbm_client_queue_get(ec);
+   if (!cqueue) return EINA_FALSE;
+
+   return EINA_TRUE;
+}
+
+EINTERN Eina_Bool
 e_plane_renderer_render(E_Plane_Renderer *renderer, Eina_Bool is_fb)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(renderer, EINA_FALSE);
index c4a32b8..174f4a1 100644 (file)
@@ -85,6 +85,7 @@ EINTERN tbm_surface_h              e_plane_renderer_cursor_surface_get(E_Plane_R
 EINTERN Eina_Bool                  e_plane_renderer_cursor_surface_refresh(E_Plane_Renderer *renderer, E_Client *ec);
 EINTERN Eina_Bool                  e_plane_renderer_ecore_evas_use(E_Plane_Renderer *renderer);
 EINTERN void                       e_plane_renderer_sent_surface_recevie(E_Plane_Renderer *renderer, tbm_surface_h tsurface);
+EINTERN Eina_Bool                  e_plane_renderer_ec_valid_check(E_Plane_Renderer *renderer, E_Client *ec);
 
 EINTERN void                       e_plane_renderer_hwc_trace_debug(Eina_Bool onoff);