eldbus_message_iter_container_close(iter, line_array);
}
+static void
+_e_hwc_windows_window_debug_commit_info_get(Eldbus_Message_Iter *iter, E_Hwc_Wins_Debug_Cmd cmd)
+{
+ Eldbus_Message_Iter *line_array;
+ E_Comp_Screen *e_comp_screen = NULL;
+ E_Output *output = NULL;
+ E_Hwc *hwc = NULL;
+ Eina_List *l, *l2;
+ int idx = 0;
+ int commit_idx = 0;
+ char info_str[1024];
+ E_Hwc_Windows_Commit_Data *wins_commit_data = NULL;
+ E_Hwc_Window_Commit_Data *commit_data = NULL;
+
+ e_comp_screen = e_comp->e_comp_screen;
+
+ eldbus_message_iter_arguments_append(iter, "as", &line_array);
+ if (!e_comp_screen)
+ {
+ eldbus_message_iter_basic_append(line_array,
+ 's',
+ "e_comp_screen not initialized..");
+ eldbus_message_iter_container_close(iter, line_array);
+ return;
+ }
+
+ EINA_LIST_FOREACH(e_comp_screen->outputs, l, output)
+ {
+ if (!output) continue;
+ if (!output->config.enabled) continue;
+ if (!output->tdm_hwc) continue;
+
+ hwc = output->hwc;
+ if (!output->hwc) continue;
+
+ snprintf(info_str, sizeof(info_str),
+ "HWC:%p mode:%d wait_commit:%d deactive:%d transition:%d norender:%d",
+ hwc, hwc->hwc_mode, hwc->wait_commit, hwc->hwc_deactive, hwc->transition, hwc->norender);
+ eldbus_message_iter_basic_append(line_array, 's', info_str);
+
+ eldbus_message_iter_basic_append(line_array, 's',
+ "==========================================================================================="
+ "=====================");
+ EINA_LIST_FOREACH(hwc->wins_commit_data_list, l, wins_commit_data)
+ {
+ snprintf(info_str, sizeof(info_str),
+ "[%2d] Wins_Commit_Data(%p) target_commit_data(%p) commit_data_list(%p)",
+ ++idx, wins_commit_data, wins_commit_data->target_commit_data, wins_commit_data->commit_data_list);
+ eldbus_message_iter_basic_append(line_array, 's', info_str);
+
+ commit_idx = 0;
+
+ if (wins_commit_data->target_commit_data)
+ {
+ snprintf(info_str, sizeof(info_str),
+ " └─ [%2d] Commit_Data(%p) hwc_window(%p):target tsurface(%p) queue(%p)",
+ ++commit_idx, wins_commit_data->target_commit_data,
+ wins_commit_data->target_commit_data->hwc_window,
+ wins_commit_data->target_commit_data->buffer.tsurface,
+ wins_commit_data->target_commit_data->buffer.queue);
+ eldbus_message_iter_basic_append(line_array, 's', info_str);
+ }
+
+ EINA_LIST_FOREACH(wins_commit_data->commit_data_list, l2, commit_data)
+ {
+ snprintf(info_str, sizeof(info_str),
+ " └─ [%2d] Commit_Data(%p) hwc_window(%p):win(0x%zx) tsurface(%p) queue(%p)",
+ ++commit_idx, commit_data, commit_data->hwc_window,
+ e_client_util_win_get(commit_data->hwc_window->ec),
+ commit_data->buffer.tsurface, commit_data->buffer.queue);
+ eldbus_message_iter_basic_append(line_array, 's', info_str);
+ }
+ }
+
+ eldbus_message_iter_basic_append(line_array, 's',
+ "==========================================================================================="
+ "=====================");
+ }
+
+ eldbus_message_iter_container_close(iter, line_array);
+}
+
EINTERN void
e_hwc_windows_debug_info_get(Eldbus_Message_Iter *iter, E_Hwc_Wins_Debug_Cmd cmd)
{
e_hwc_window_queue_debug_info_get(iter);
else if (cmd >= E_HWC_WINS_DEBUG_CMD_VIS && cmd <= E_HWC_WINS_DEBUG_CMD_NO)
_e_hwc_windows_window_debug_info_get(iter, cmd);
+ else if (cmd == E_HWC_WINS_DEBUG_CMD_COMMIT)
+ _e_hwc_windows_window_debug_commit_info_get(iter, cmd);
}
EINTERN Eina_Bool