zoom: do not destroy pp while pp converting 41/136941/1
authorJunkyeong Kim <jk0430.kim@samsung.com>
Tue, 4 Jul 2017 00:26:08 +0000 (09:26 +0900)
committerJunkyeong Kim <jk0430.kim@samsung.com>
Tue, 4 Jul 2017 00:26:20 +0000 (09:26 +0900)
change pp_commit to pp_layer_commit
add pp_commit flag to check pp convering

Change-Id: Id7d7c59808621c526a964d56a47094984c4b5afb
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/bin/e_plane.c
src/bin/e_plane.h

index 7b7e9a8c89c1ccd6dab622c6682155fe9b91579e..7043a72d6da61e15f62682376aad1d75fe7efab5 100644 (file)
@@ -965,6 +965,15 @@ e_plane_commit(E_Plane *plane)
 
    plane->wait_commit = EINA_TRUE;
 
+   if (plane->tpp)
+     {
+        if (!plane->pp_set && !plane->pp_commit && plane->is_fb)
+          {
+             tdm_pp_destroy(plane->tpp);
+             plane->tpp = NULL;
+          }
+     }
+
    return EINA_TRUE;
 }
 
@@ -1573,7 +1582,7 @@ _e_plane_pp_layer_commit_handler(tdm_layer *layer, unsigned int sequence,
 
    plane = data->plane;
 
-   plane->pp_commit = EINA_FALSE;
+   plane->pp_layer_commit = EINA_FALSE;
 
    /* if pp_set is false, do not deal with pending list */
    if (!plane->pp_set)
@@ -1686,7 +1695,7 @@ _e_plane_pp_layer_commit(E_Plane *plane, tbm_surface_h tsurface)
    tbm_surface_internal_ref(data->tsurface);
    data->ec = NULL;
 
-   if (plane->pp_commit)
+   if (plane->pp_layer_commit)
      {
         plane->pending_pp_commit_data_list = eina_list_append(plane->pending_pp_commit_data_list, data);
         return EINA_TRUE;
@@ -1706,7 +1715,7 @@ _e_plane_pp_layer_commit(E_Plane *plane, tbm_surface_h tsurface)
         goto fail;
      }
 
-   plane->pp_commit = EINA_TRUE;
+   plane->pp_layer_commit = EINA_TRUE;
 
    return EINA_TRUE;
 
@@ -1739,6 +1748,7 @@ _e_plane_pp_commit_handler(tdm_pp *pp, tbm_surface_h tsurface_src, tbm_surface_h
    e_plane_commit_data_release(data);
 
    plane->wait_commit = EINA_FALSE;
+   plane->pp_commit = EINA_FALSE;
 
    if (plane_trace_debug)
      ELOGF("E_PLANE", "PP Commit Handler Plane(%p)", NULL, NULL, plane);
@@ -1792,6 +1802,7 @@ _e_plane_pp_commit(E_Plane *plane, E_Plane_Commit_Data *data)
    EINA_SAFETY_ON_FALSE_GOTO(tdm_err == TDM_ERROR_NONE, commit_fail);
 
    plane->wait_commit = EINA_TRUE;
+   plane->pp_commit = EINA_TRUE;
 
    return EINA_TRUE;
 
@@ -1953,9 +1964,12 @@ e_plane_zoom_unset(E_Plane *plane)
         plane->pp_tqueue = NULL;
      }
 
-   if (plane->tpp)
+   if (!plane->pp_commit)
      {
-        tdm_pp_destroy(plane->tpp);
-        plane->tpp = NULL;
+        if (plane->tpp)
+          {
+             tdm_pp_destroy(plane->tpp);
+             plane->tpp = NULL;
+          }
      }
 }
index b5b0b091d2d9125c13b8e3f2a6290e581fadfd19..cbe84cbd9866428bb55acea70091ae48fb077d46 100644 (file)
@@ -85,6 +85,7 @@ struct _E_Plane
    Eina_Bool             pp_set_info;
    Eina_Bool             pp_set;
    Eina_Bool             pp_commit;
+   Eina_Bool             pp_layer_commit;
    Eina_Bool             skip_surface_set;
 
    Eina_Rectangle        zoom_rect;