From 7759a2c58b267c03933ce560862c35672445f0b1 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Mon, 24 Feb 2020 17:51:07 +0900 Subject: [PATCH] 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 --- src/bin/e_comp_wl.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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; -- 2.34.1