e_plane: surface queue of fb plane clear when plane is updated in hwc mode 30/92930/2 accepted/tizen/common/20161019.150327 accepted/tizen/ivi/20161019.142428 accepted/tizen/mobile/20161019.142343 accepted/tizen/tv/20161019.142359 accepted/tizen/wearable/20161019.142413 submit/tizen/20161019.121409
authorChangyeon Lee <cyeon.lee@samsung.com>
Wed, 19 Oct 2016 10:29:56 +0000 (19:29 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Wed, 19 Oct 2016 11:28:28 +0000 (20:28 +0900)
if surface queue isn't cleared and has surface can be acquired,
e20 will display surface that rendered before hwc mode when entering compositing mode.

Change-Id: Id14d5a7fc9ccc48b4a1a6470b0c955096211d00f

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

index 7a91d55..d2c6885 100644 (file)
@@ -314,6 +314,7 @@ _e_plane_surface_from_client_acquire(E_Plane *plane)
    E_Pixmap *pixmap = ec->pixmap;
    E_Comp_Wl_Buffer *buffer = e_pixmap_resource_get(pixmap);
    E_Comp_Wl_Data *wl_comp_data = (E_Comp_Wl_Data *)e_comp->wl_comp_data;
+   E_Plane_Renderer *renderer = plane->renderer;
    tbm_surface_h tsurface = NULL;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(buffer, NULL);
@@ -325,6 +326,12 @@ _e_plane_surface_from_client_acquire(E_Plane *plane)
 
    e_comp_object_hwc_update_set(ec->frame, EINA_FALSE);
 
+   if (plane->is_fb)
+     {
+        if (!e_plane_renderer_surface_queue_clear(renderer))
+            ERR("fail to e_plane_renderer_surface_queue_clear");
+     }
+
    tsurface = wayland_tbm_server_get_surface(wl_comp_data->tbm.server, buffer->resource);
    if (!tsurface)
      {
index f721bbb..630e782 100644 (file)
@@ -1296,6 +1296,8 @@ e_plane_renderer_surface_queue_clear(E_Plane_Renderer *renderer)
    tbm_surface_queue_h tqueue = NULL;
    tbm_surface_h tsurface = NULL;
 
+   EINA_SAFETY_ON_NULL_RETURN_VAL(renderer, EINA_FALSE);
+
    tqueue = renderer->tqueue;
    EINA_SAFETY_ON_NULL_RETURN_VAL(tqueue, EINA_FALSE);