From: Changyeon Lee Date: Tue, 7 Apr 2020 10:44:56 +0000 (+0900) Subject: e_hwc_window: set client type if e_pixmap resource is null X-Git-Tag: submit/tizen/20200415.025022~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dc0d34bc3f8717458217e9ec2a1f634b5d8cad3f;p=platform%2Fupstream%2Fenlightenment.git e_hwc_window: set client type if e_pixmap resource is null in rotation module, e_pixmap resource is set by null for skip frame. it cause deadlock if client is set HWC and reserved memory is double buffer Change-Id: Idad3071825df7fa0d6df353e70325fd382b24520 --- diff --git a/src/bin/e_hwc_window.c b/src/bin/e_hwc_window.c index 5aba4a5ca4..afa19be089 100644 --- a/src/bin/e_hwc_window.c +++ b/src/bin/e_hwc_window.c @@ -88,6 +88,7 @@ typedef enum _E_Hwc_Window_Restriction E_HWC_WINDOW_RESTRICTION_UI_SUBSURFACE, E_HWC_WINDOW_RESTRICTION_CONTENT_IMAGE, E_HWC_WINDOW_RESTRICTION_QUICKPANEL_OPEN, + E_HWC_WINDOW_RESTRICTION_PIXMAP_RESOURCE, } E_Hwc_Window_Restriction; static Eina_Bool ehw_trace = EINA_FALSE; @@ -1719,6 +1720,7 @@ e_hwc_window_device_state_available_update(E_Hwc_Window *hwc_window) { E_Client *ec = NULL; E_Comp_Wl_Client_Data *cdata = NULL; + E_Pixmap *pixmap = NULL; E_Output *eout = NULL; int minw = 0, minh = 0; int transform; @@ -1759,6 +1761,14 @@ e_hwc_window_device_state_available_update(E_Hwc_Window *hwc_window) goto finish; } + pixmap = ec->pixmap; + if ((!pixmap) || (!e_pixmap_resource_get(pixmap))) + { + restriction = E_HWC_WINDOW_RESTRICTION_PIXMAP_RESOURCE; + available = EINA_FALSE; + goto finish; + } + if ((cdata->width_from_buffer != cdata->width_from_viewport) || (cdata->height_from_buffer != cdata->height_from_viewport)) { @@ -2212,6 +2222,8 @@ e_hwc_window_restriction_string_get(E_Hwc_Window *hwc_window) return "content image"; case E_HWC_WINDOW_RESTRICTION_QUICKPANEL_OPEN: return "quickpanel open"; + case E_HWC_WINDOW_RESTRICTION_PIXMAP_RESOURCE: + return "pixmap resource"; default: return "UNKNOWN"; }