e_hwc_window: Add damage to canvas when hwc_window needs present sync 07/264407/3
authorChangyeon Lee <cyeon.lee@samsung.com>
Fri, 17 Sep 2021 06:21:30 +0000 (15:21 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Fri, 17 Sep 2021 10:13:40 +0000 (10:13 +0000)
if hwc_window needs present sync, gl compositor must render once

Change-Id: I7e467288dcbbbccfe0441bb024d49395afe3fe8b

src/bin/e_hwc_window.c
src/bin/e_hwc_windows.c
src/bin/e_hwc_windows.h

index da20a93..fd6cb40 100644 (file)
@@ -2852,7 +2852,9 @@ e_hwc_window_present_sync(E_Hwc_Window *hwc_window)
         e_hwc_window_ref(hwc_window);
      }
 
-   EHWTRACE("Present Sync", hwc_window->ec, hwc_window->hwc, hwc_window);
+   e_hwc_windows_target_window_force_render(target_hwc_window);
+
+   EHWINF("Present Sync", hwc_window->ec, hwc_window->hwc, hwc_window);
 
    return EINA_TRUE;
 }
index 23afb52..a9124d8 100644 (file)
@@ -552,8 +552,8 @@ _e_hwc_windows_target_window_rendered_windows_get(tbm_surface_h target_tsurface)
    return comp_info->rendered_windows;
 }
 
-static void
-_e_hwc_windows_target_window_force_render(E_Hwc_Window_Target *target_hwc_window)
+EINTERN void
+e_hwc_windows_target_window_force_render(E_Hwc_Window_Target *target_hwc_window)
 {
    int w, h;
 
@@ -609,7 +609,7 @@ _e_hwc_windows_target_window_buffer_skip(E_Hwc *hwc)
                                 hwc_window->display.buffer.queue, hwc_window->display.buffer.transform);
         tdm_hwc_set_client_target_buffer(thwc, hwc_window->display.buffer.tsurface, fb_damage);
 
-        _e_hwc_windows_target_window_force_render(target_hwc_window);
+        e_hwc_windows_target_window_force_render(target_hwc_window);
      }
 
    return EINA_TRUE;
@@ -2990,7 +2990,7 @@ _e_hwc_windows_evaluate(E_Hwc *hwc, E_Output_Display_Mode display_mode)
 
         if (!hwc->transition)
           {
-             _e_hwc_windows_target_window_force_render(hwc->target_hwc_window);
+             e_hwc_windows_target_window_force_render(hwc->target_hwc_window);
              hwc->transition = EINA_TRUE;
           }
 
@@ -3778,7 +3778,7 @@ e_hwc_windows_zoom_set(E_Hwc *hwc, Eina_Rectangle *rect)
           }
 
         _e_hwc_windows_target_window_pp_queue_set(hwc->target_hwc_window, hwc->pp_queue);
-        _e_hwc_windows_target_window_force_render(hwc->target_hwc_window);
+        e_hwc_windows_target_window_force_render(hwc->target_hwc_window);
         hwc->pp_set = EINA_TRUE;
      }
 
@@ -3846,7 +3846,7 @@ e_hwc_windows_zoom_unset(E_Hwc *hwc)
           }
 
         _e_hwc_windows_target_window_pp_queue_set(hwc->target_hwc_window, NULL);
-        _e_hwc_windows_target_window_force_render(hwc->target_hwc_window);
+        e_hwc_windows_target_window_force_render(hwc->target_hwc_window);
      }
 }
 
index dd546b9..61116df 100644 (file)
@@ -61,5 +61,7 @@ EINTERN void                 e_hwc_windows_client_type_override(E_Hwc *hwc);
 
 EINTERN Eina_Bool            e_hwc_windows_fence_enabled_get(E_Hwc *hwc);
 
+EINTERN void                 e_hwc_windows_target_window_force_render(E_Hwc_Window_Target *target_hwc_window);
+
 #endif
 #endif