From: Changyeon Lee Date: Mon, 14 Aug 2017 06:12:51 +0000 (+0900) Subject: e_plane: reset unset counter of planes when fb_target is set hwc X-Git-Tag: submit/tizen/20170815.115518~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9161463901491c72e2ce7d59f6bce4ffc81ae726;p=platform%2Fupstream%2Fenlightenment.git e_plane: reset unset counter of planes when fb_target is set hwc Change-Id: I745824780850f6997da8a53fa0e5f99b15126bdc --- diff --git a/src/bin/e_plane.c b/src/bin/e_plane.c index 5cb7855..b8429af 100644 --- a/src/bin/e_plane.c +++ b/src/bin/e_plane.c @@ -579,6 +579,29 @@ _e_plane_renderer_client_cb_del(void *data EINA_UNUSED, E_Client *ec) } static void +_e_plane_fb_target_all_unset_counter_reset(E_Plane *fb_target) +{ + E_Plane *plane = NULL; + E_Output *output = NULL; + Eina_List *l; + + output = fb_target->output; + EINA_SAFETY_ON_NULL_RETURN(output); + + EINA_LIST_FOREACH(output->planes, l, plane) + { + /* reset the unset_counter */ + if (plane->unset_counter > 0) + { + plane->unset_counter = 0; + + if (plane_trace_debug) + ELOGF("E_PLANE", " Plane(%p) Unset Counter Reset", NULL, NULL, plane); + } + } +} + +static void _e_plane_unset_reset(E_Plane *plane) { Eina_Bool print_log = EINA_FALSE; @@ -1906,7 +1929,10 @@ e_plane_ec_set(E_Plane *plane, E_Client *ec) _e_plane_surface_send_dequeuable_surfaces(plane); } - if (!plane->is_fb) _e_plane_unset_reset(plane); + if (plane->is_fb) + _e_plane_fb_target_all_unset_counter_reset(plane); + else + _e_plane_unset_reset(plane); e_comp_object_hwc_update_set(ec->frame, EINA_TRUE);