# include <sys/eventfd.h>
# include <pixman.h>
+#define E_HWC_WINDOW_COMMIT_HANDLER_LOG_TIMEOUT 5.0
+
#define DBG_EVALUATE 1
#define DEFAULT_MAX_TRANSITION_FAILURES 3;
hwc = wins_commit_data->hwc;
EINA_SAFETY_ON_NULL_RETURN(hwc);
+ if (wins_commit_data->commit_handler_log_timeout_set)
+ {
+ EHWSERR("Timeout commit handler is called wins_commit_data:%p",
+ hwc, wins_commit_data);
+ }
+
EHWSTRACE("!!!!!!!! HWC Commit Handler !!!!!!!!", NULL, hwc);
TRACE_DS_MARK(_e_hwc_windows_commit_handler);
if (!wins_commit_data) return ECORE_CALLBACK_CANCEL;
- EHWSERR("Timeout wait commit", wins_commit_data->hwc);
+ EHWSERR("Timeout wait commit wins_commit_data:%p",
+ wins_commit_data->hwc, wins_commit_data);
wins_commit_data->commit_handler_timer = NULL;
return ECORE_CALLBACK_CANCEL;
}
+static Eina_Bool
+_e_hwc_windows_commit_handler_log_timeout(void *data)
+{
+ E_Hwc_Windows_Commit_Data *wins_commit_data = (E_Hwc_Windows_Commit_Data *)data;
+
+ if (!wins_commit_data) return ECORE_CALLBACK_CANCEL;
+
+ EHWSERR("Timeout wait commit wins_commit_data:%p",
+ wins_commit_data->hwc, wins_commit_data);
+
+ wins_commit_data->commit_handler_timer = NULL;
+ wins_commit_data->commit_handler_log_timeout_set = EINA_TRUE;
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
static void
_e_hwc_windows_commit_handler_timer_set(E_Hwc *hwc, E_Hwc_Windows_Commit_Data *wins_commit_data, Eina_Bool set)
{
- if (!e_comp->commit_handler_timer.use) return;
-
if (wins_commit_data->commit_handler_timer)
{
ecore_timer_del(wins_commit_data->commit_handler_timer);
}
if (set)
- wins_commit_data->commit_handler_timer = ecore_timer_add(e_comp->commit_handler_timer.interval,
- _e_hwc_windows_commit_handler_timeout,
- wins_commit_data);
+ {
+ if (e_comp->commit_handler_timer.use)
+ {
+ wins_commit_data->commit_handler_timer = ecore_timer_add(e_comp->commit_handler_timer.interval,
+ _e_hwc_windows_commit_handler_timeout,
+ wins_commit_data);
+ }
+ else
+ {
+ wins_commit_data->commit_handler_timer = ecore_timer_add(E_HWC_WINDOW_COMMIT_HANDLER_LOG_TIMEOUT,
+ _e_hwc_windows_commit_handler_log_timeout,
+ wins_commit_data);
+ wins_commit_data->commit_handler_log_timeout_set = EINA_FALSE;
+ }
+ }
}
static E_Hwc_Windows_Commit_Data *