From: Changyeon Lee Date: Wed, 19 Oct 2016 10:29:56 +0000 (+0900) Subject: e_plane: surface queue of fb plane clear when plane is updated in hwc mode X-Git-Tag: accepted/tizen/common/20161019.150327^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4daea431d251ba8f4341e72794431ee1a0438e95;p=platform%2Fupstream%2Fenlightenment.git e_plane: surface queue of fb plane clear when plane is updated in hwc mode 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 --- diff --git a/src/bin/e_plane.c b/src/bin/e_plane.c index 7a91d55..d2c6885 100644 --- a/src/bin/e_plane.c +++ b/src/bin/e_plane.c @@ -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) { diff --git a/src/bin/e_plane_renderer.c b/src/bin/e_plane_renderer.c index f721bbb..630e782 100644 --- a/src/bin/e_plane_renderer.c +++ b/src/bin/e_plane_renderer.c @@ -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);