From: Changyeon Lee Date: Wed, 5 Aug 2020 09:46:51 +0000 (+0900) Subject: e_comp: add config hwc_send_redraw_request X-Git-Tag: submit/tizen/20200805.095055^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9a41262104d7724f74d19e7bb91af2a3da056eb6;p=platform%2Fupstream%2Fenlightenment.git e_comp: add config hwc_send_redraw_request Change-Id: Ibf1ea0bb11c5ea41d8c302c9e3b1d9f3bb3df62f 0: none, 1: send redraw request to client when client need to redraw for hwc --- diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index d96c478e1e..e06c07d9c5 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -459,6 +459,7 @@ e_comp_init(void) if (conf->hwc_sync_mode_change) e_comp->hwc_sync_mode_change = EINA_TRUE; if (conf->hwc_use_detach) e_comp->hwc_use_detach = EINA_TRUE; if (conf->hwc_ignore_primary) e_comp->hwc_ignore_primary = EINA_TRUE; + if (conf->hwc_send_redraw_request) e_comp->hwc_send_redraw_request = EINA_TRUE; } // use wl_surface instead of tbm_surface for the e_comp_wl_buffer diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h index a3c04079bf..af92ed8b60 100644 --- a/src/bin/e_comp.h +++ b/src/bin/e_comp.h @@ -164,6 +164,7 @@ struct _E_Comp Eina_Bool hwc_sync_mode_change; Eina_Bool hwc_use_detach; Eina_Bool hwc_ignore_primary; + Eina_Bool hwc_send_redraw_request; Eina_Bool use_native_type_buffer : 1; // use native buffer type Eina_Bool avoid_afill; // avoid to fill the alpha channel as 0xff. that means filling 0x00. diff --git a/src/bin/e_comp_cfdata.c b/src/bin/e_comp_cfdata.c index 55f61fd9db..00ff7c3269 100644 --- a/src/bin/e_comp_cfdata.c +++ b/src/bin/e_comp_cfdata.c @@ -62,6 +62,7 @@ e_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd) E_CONFIG_VAL(D, T, hwc_sync_mode_change, UCHAR); E_CONFIG_VAL(D, T, hwc_ignore_primary, UCHAR); E_CONFIG_VAL(D, T, hwc_use_detach, UCHAR); + E_CONFIG_VAL(D, T, hwc_send_redraw_request, UCHAR); E_CONFIG_VAL(D, T, use_native_type_buffer, UCHAR); E_CONFIG_VAL(D, T, nofade, UCHAR); E_CONFIG_VAL(D, T, smooth_windows, UCHAR); @@ -137,6 +138,7 @@ e_comp_cfdata_config_new(void) cfg->hwc_sync_mode_change = 0; cfg->hwc_ignore_primary = 0; cfg->hwc_use_detach = 0; + cfg->hwc_send_redraw_request = 0; cfg->use_native_type_buffer = 0; // 1 if use_native(wl_buffer), 0 if use_tbm(tbm_surface) cfg->nofade = 0; cfg->smooth_windows = 0; // 1 if gl, 0 if not diff --git a/src/bin/e_comp_cfdata.h b/src/bin/e_comp_cfdata.h index 670d68110f..a484cc3fe2 100644 --- a/src/bin/e_comp_cfdata.h +++ b/src/bin/e_comp_cfdata.h @@ -39,6 +39,7 @@ struct _E_Comp_Config unsigned char hwc_sync_mode_change; // 0: none, 1: synchronize scanout buffer when hwc mode change in reserved memory plane unsigned char hwc_ignore_primary; // 0: none, 1: hwc use plane has lowest zpos and support rgb to default ui layer unsigned char hwc_use_detach; // 0: hwc use dequeue protocol, 1: hwc use detach request when synchronize scanout buffer + unsigned char hwc_send_redraw_request; // 0: none, 1: send redraw request to client when client need to redraw for hwc unsigned char use_native_type_buffer; // 0: use the tbm_buffer(tbm_surface), 1: use the native_buffer(wl_buffer) unsigned char smooth_windows; unsigned char nofade; diff --git a/src/bin/e_hwc_window_queue.c b/src/bin/e_hwc_window_queue.c index bd139a73e8..925fc78743 100644 --- a/src/bin/e_hwc_window_queue.c +++ b/src/bin/e_hwc_window_queue.c @@ -911,7 +911,8 @@ _e_hwc_window_queue_prepare_set(E_Hwc_Window_Queue *queue, E_Hwc_Window *hwc_win queue->state = E_HWC_WINDOW_QUEUE_STATE_SET_WAITING_WAIT_USABLE; - e_comp_wl_renderer_client_redraw_request_send(hwc_window->ec); + if (e_comp->hwc_send_redraw_request) + e_comp_wl_renderer_client_redraw_request_send(hwc_window->ec); EHWQINF("Set Waiting wait usable user ehw:%p -- {%s}", hwc_window->ec, queue->hwc, queue, hwc_window,