{
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);
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;