e_comp: add config hwc_send_redraw_request 24/240324/1 accepted/tizen/unified/20200806.121101 submit/tizen/20200805.095055 submit/tizen/20200806.053906
authorChangyeon Lee <cyeon.lee@samsung.com>
Wed, 5 Aug 2020 09:46:51 +0000 (18:46 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Wed, 5 Aug 2020 09:48:07 +0000 (18:48 +0900)
Change-Id: Ibf1ea0bb11c5ea41d8c302c9e3b1d9f3bb3df62f
0: none, 1: send redraw request to client when client need to redraw for hwc

src/bin/e_comp.c
src/bin/e_comp.h
src/bin/e_comp_cfdata.c
src/bin/e_comp_cfdata.h
src/bin/e_hwc_window_queue.c

index d96c478e1e3a31739e44b07180bd3a58c197cff3..e06c07d9c5aec315b2fb776e55f1674b013f0c9a 100644 (file)
@@ -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
index a3c04079bf5dd652c904c5f3e4c9ec478313af88..af92ed8b608b64781bd16efd6ed4655e27d3d7bd 100644 (file)
@@ -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.
 
index 55f61fd9db523e192cc257677fc71b673e8c583d..00ff7c326996e34a16a53d31393ea3dc1f147423 100644 (file)
@@ -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
index 670d68110fafa05a57dd2c403ddcc8016c6aac2a..a484cc3fe2b842e3a055c82c6f989d705f3b1002 100644 (file)
@@ -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;
index bd139a73e808632260ce038ba4f36d5801e35799..925fc787436ab0b0a9c94bd189ca795838311a3e 100644 (file)
@@ -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,