From: Changyeon Lee Date: Mon, 24 Feb 2020 08:51:07 +0000 (+0900) Subject: e_comp_wl: end hwc if buffer transform is changed only when mode of hwc is planes X-Git-Tag: submit/tizen/20200304.075907~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F02%2F226402%2F1;p=platform%2Fupstream%2Fenlightenment.git e_comp_wl: end hwc if buffer transform is changed only when mode of hwc is planes because hwc windows check buffer transform before commit, hwc of ec is ended if buffer transform of ec can't be display by hwc. Change-Id: I8f80820d0643f3ccbc11b14f71e086908c2c42fc --- diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index e638fa2018..4c084f80e1 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2401,6 +2401,7 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) if (vp->buffer.transform != state->buffer_viewport.buffer.transform) { + E_Output *eout; int transform_change = (4 + state->buffer_viewport.buffer.transform - vp->buffer.transform) & 0x3; /* when buffer is transformed, we have to apply the new evas-map */ @@ -2413,7 +2414,18 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) if (transform_change == vp->wait_for_transform_change) vp->wait_for_transform_change = 0; - if (e_comp_is_on_overlay(ec)) e_comp_hwc_client_end(ec, __FUNCTION__); + if (ec->zone) + { + eout = e_output_find(ec->zone->output_id); + if (eout && eout->hwc) + { + if (e_hwc_policy_get(eout->hwc) == E_HWC_POLICY_PLANES) + { + if (e_comp_is_on_overlay(ec)) + e_comp_hwc_client_end(ec, __FUNCTION__); + } + } + } } ec->comp_data->scaler.buffer_viewport = state->buffer_viewport;