e_plane: released fetched tbm_surface to queue when unfetch plane
authorChangyeon Lee <cyeon.lee@samsung.com>
Fri, 23 Jun 2017 03:45:17 +0000 (12:45 +0900)
committerBoram Park <boram1288.park@samsung.com>
Wed, 5 Jul 2017 02:57:16 +0000 (11:57 +0900)
Change-Id: I6d42579d25fb4247e0062a9525f04274da134612

src/bin/e_plane.c

index 57814ff9b6ac988ac982a5ccabd17ac0fb1f60b7..2483ba42cdd6a86ef675a7910f0820a46a95ad1a 100644 (file)
@@ -400,13 +400,6 @@ _e_plane_cursor_surface_acquire(E_Plane *plane)
    return tsurface;
 }
 
-static void
-_e_plane_surface_on_ecore_evas_release(E_Plane *plane, tbm_surface_h tsurface)
-{
-   /* release the tsurface */
-   e_plane_renderer_surface_queue_release(plane->renderer, tsurface);
-}
-
 static tbm_surface_h
 _e_plane_surface_from_ecore_evas_acquire(E_Plane *plane)
 {
@@ -855,9 +848,15 @@ e_plane_unfetch(E_Plane *plane)
    if (e_plane_is_unset_try(plane)) return;
 
    if (plane->is_fb && !plane->ec)
-     _e_plane_surface_on_ecore_evas_release(plane, plane->tsurface);
+     {
+        e_plane_renderer_surface_queue_release(plane->renderer, plane->tsurface);
+     }
    else
-     if (!plane->ec) return;
+     {
+        if (!plane->ec) return;
+        if (plane->reserved_memory)
+          e_plane_renderer_surface_queue_release(plane->renderer, plane->tsurface);
+     }
 
    displaying_tsurface = e_plane_renderer_displaying_surface_get(plane->renderer);