From 9c5ff83cecfa17852a51da7b50b1338853da94c2 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Fri, 21 Aug 2020 19:34:54 +0900 Subject: [PATCH] e_hwc_windows: support presentation_time in case of use pp take presentation_time of hwc_window or target_buffer in commit pp_buffer Change-Id: Ib9e0f29d3a6364a9e7fcb7fb81af61cdd387b1b1 --- src/bin/e_hwc_windows.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/bin/e_hwc_windows.c b/src/bin/e_hwc_windows.c index 6f65ad8b12..e855d756f3 100644 --- a/src/bin/e_hwc_windows.c +++ b/src/bin/e_hwc_windows.c @@ -2977,7 +2977,9 @@ _e_hwc_windows_pp_commit(E_Hwc *hwc) { E_Output *output = NULL; E_Hwc_Window_Queue_Buffer *queue_buffer = NULL; + E_Hwc_Windows_Buffer_Comp_Info *pp_buffer_comp_info, *buffer_comp_info; tdm_error terror = TDM_ERROR_NONE; + E_Client *ec; EINA_SAFETY_ON_NULL_RETURN_VAL(hwc, EINA_FALSE); @@ -3020,6 +3022,25 @@ _e_hwc_windows_pp_commit(E_Hwc *hwc) terror = tdm_pp_commit(hwc->tpp); EINA_SAFETY_ON_FALSE_GOTO(terror == TDM_ERROR_NONE, commit_fail); + pp_buffer_comp_info = _e_hwc_windows_buffer_comp_info_get(queue_buffer->tsurface); + if (pp_buffer_comp_info) + { + if (hwc->pp_hwc_window) + { + ec = hwc->pp_hwc_window->ec; + if ((ec) && (ec->comp_data)) + e_presentation_time_container_feedback_merge(&pp_buffer_comp_info->presentation_container, + &ec->comp_data->presentation_container); + } + else + { + buffer_comp_info = _e_hwc_windows_buffer_comp_info_get(hwc->pp_buffer.tsurface); + if (buffer_comp_info) + e_presentation_time_container_feedback_merge(&pp_buffer_comp_info->presentation_container, + &buffer_comp_info->presentation_container); + } + } + hwc->pp_commit = EINA_TRUE; return EINA_TRUE; -- 2.34.1