e_hwc_windows: call the presentation callback in case of hwc mode is full 13/266713/1 accepted/tizen/6.5/unified/20211118.211906 submit/tizen_6.5/20211118.044649
authorChangyeon Lee <cyeon.lee@samsung.com>
Wed, 17 Nov 2021 10:26:09 +0000 (19:26 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Wed, 17 Nov 2021 11:13:20 +0000 (20:13 +0900)
if window is composited by target window but hwc mode is full,
the presentation callback is not called.
this patch makes that the presentation callback is called
in commit data acquire and offscreen commit.

Change-Id: I7ae86408e33c8df27655979aecd5a13136d789a7

src/bin/e_hwc_windows.c

index 5f36abcb6c5e890981ae343b7bd78bc24da67731..5ca1f54e02f4b9eb75a97acfd75bd781af76d803 100644 (file)
@@ -463,7 +463,17 @@ _e_hwc_windows_commit_data_acquire(E_Hwc *hwc)
    EINA_LIST_FOREACH(hwc->hwc_windows, l, hwc_window)
      {
         commit_data = e_hwc_window_commit_data_acquire(hwc_window);
-        if (!commit_data) continue;
+        if (!commit_data)
+          {
+             if ((hwc->hwc_mode == E_HWC_MODE_FULL) &&
+                 (!e_hwc_window_is_on_hw_overlay(hwc_window)))
+               {
+                  _e_hwc_windows_presentation_callback_take(hwc_window);
+                  e_hwc_window_presentation_callback_call(hwc_window);
+               }
+
+             continue;
+          }
 
         _e_hwc_windows_presentation_feedback_take(hwc_window);
         _e_hwc_windows_presentation_callback_take(hwc_window);
@@ -526,7 +536,17 @@ _e_hwc_windows_offscreen_commit(E_Hwc *hwc)
         if (hwc_window->is_target) continue;
 
         commit_data = e_hwc_window_commit_data_acquire(hwc_window);
-        if (!commit_data) continue;
+        if (!commit_data)
+          {
+             if ((hwc->hwc_mode == E_HWC_MODE_FULL) &&
+                 (!e_hwc_window_is_on_hw_overlay(hwc_window)))
+               {
+                  _e_hwc_windows_presentation_callback_take(hwc_window);
+                  e_hwc_window_presentation_callback_call(hwc_window);
+               }
+
+             continue;
+          }
 
         EHWSTRACE("!!!!!!!! HWC OffScreen Commit !!!!!!!!", NULL, hwc);