TDM_INFO("handler(%p)", hwc_commit_handler);
}
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_ASYNC_END((intptr_t)hwc_commit_handler, "[HWC_COMMIT~HANDLER] %d",
+ private_hwc->private_output->pipe);
+
/* LCOV_EXCL_START */
if (private_display->print_fps) {
double curr = tdm_helper_get_time();
_pthread_mutex_lock(&private_display->lock);
+ if (tdm_ttrace_module & TDM_TTRACE_HWC) {
+ if (target_buffer) {
+ tbm_bo bo = tbm_surface_internal_get_bo(target_buffer, 0);
+ TDM_TRACE_BEGIN("tdm_hwc_set_client_target_buffer %d", tbm_bo_export(bo));
+ } else {
+ TDM_TRACE_BEGIN("tdm_hwc_set_client_target_buffer NULL");
+ }
+ }
+
if (tdm_debug_dump & TDM_DUMP_FLAG_WINDOW) {
/* LCOV_EXCL_START */
char str[TDM_PATH_LEN];
} else {
if (!func_hwc->hwc_set_client_target_buffer) {
/* LCOV_EXCL_START */
- _pthread_mutex_unlock(&private_display->lock);
TDM_WRN("not implemented!!");
- return TDM_ERROR_NOT_IMPLEMENTED;
+ ret = TDM_ERROR_NOT_IMPLEMENTED;
+ goto done;
/* LCOV_EXCL_STOP */
}
}
}
+done:
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_END();
+
_pthread_mutex_unlock(&private_display->lock);
return ret;
_pthread_mutex_lock(&private_display->lock);
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_BEGIN(__FUNCTION__);
+
private_module = private_hwc->private_module;
func_hwc = &private_module->func_hwc;
if (private_module->use_hal_tdm) {
if (num_wnds == 0) {
ret = (tdm_error)hal_tdm_hwc_validate((hal_tdm_hwc *)private_hwc->hwc_backend, NULL, 0, num_types);
-
- _pthread_mutex_unlock(&private_display->lock);
- return ret;
+ goto done;
}
} else {
if (!func_hwc->hwc_validate) {
/* LCOV_EXCL_START */
- _pthread_mutex_unlock(&private_display->lock);
TDM_WRN("not implemented!!");
- return TDM_ERROR_NOT_IMPLEMENTED;
+ ret = TDM_ERROR_NOT_IMPLEMENTED;
+ goto done;
/* LCOV_EXCL_STOP */
}
if (num_wnds == 0) {
ret = func_hwc->hwc_validate(private_hwc->hwc_backend, NULL, 0, num_types);
-
- _pthread_mutex_unlock(&private_display->lock);
- return ret;
+ goto done;
}
}
composited_wnds_backend = calloc(num_wnds, sizeof(tdm_hwc_window *));
if (!composited_wnds_backend) {
/* LCOV_EXCL_START */
- _pthread_mutex_unlock(&private_display->lock);
- return TDM_ERROR_OUT_OF_MEMORY;
+ ret = TDM_ERROR_OUT_OF_MEMORY;
+ goto done;
/* LCOV_EXCL_STOP */
}
free(composited_wnds_backend);
+done:
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_END();
+
_pthread_mutex_unlock(&private_display->lock);
return ret;
_pthread_mutex_lock(&private_display->lock);
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_BEGIN(__FUNCTION__);
+
private_module = private_hwc->private_module;
func_hwc = &private_module->func_hwc;
} else {
if (!func_hwc->hwc_get_changed_composition_types) {
/* LCOV_EXCL_START */
- _pthread_mutex_unlock(&private_display->lock);
TDM_WRN("not implemented!!");
- return TDM_ERROR_NOT_IMPLEMENTED;
+ ret = TDM_ERROR_NOT_IMPLEMENTED;
+ goto done;
/* LCOV_EXCL_STOP */
}
}
if (ret != TDM_ERROR_NONE) {
/* LCOV_EXCL_START */
- _pthread_mutex_unlock(&private_display->lock);
- return ret;
+ goto done;
/* LCOV_EXCL_STOP */
}
if (hwc_window == NULL || composition_types == NULL) {
- _pthread_mutex_unlock(&private_display->lock);
- return TDM_ERROR_NONE;
+ goto done;
}
for (i = 0; i < *num_elements; i++) {
TDM_ERR("failed! This should never happen!");
tdm_hwc_window_destroy_internal(private_hwc_window);
*num_elements = 0;
- _pthread_mutex_unlock(&private_display->lock);
- return TDM_ERROR_OPERATION_FAILED;
+ ret = TDM_ERROR_OPERATION_FAILED;
+ goto done;
/* LCOV_EXCL_STOP */
}
hwc_window[i] = (tdm_hwc_window*)private_hwc_window;
}
+done:
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_END();
+
_pthread_mutex_unlock(&private_display->lock);
return ret;
_pthread_mutex_lock(&private_display->lock);
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_BEGIN(__FUNCTION__);
+
private_module = private_hwc->private_module;
func_hwc = &private_module->func_hwc;
} else {
if (!func_hwc->hwc_validate) {
/* LCOV_EXCL_START */
- _pthread_mutex_unlock(&private_display->lock);
TDM_WRN("not implemented!!");
- return TDM_ERROR_NOT_IMPLEMENTED;
+ ret = TDM_ERROR_NOT_IMPLEMENTED;
+ goto done;
/* LCOV_EXCL_STOP */
}
ret = func_hwc->hwc_accept_validation(private_hwc->hwc_backend);
}
+
+done:
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_END();
+
_pthread_mutex_unlock(&private_display->lock);
return ret;
_pthread_mutex_lock(&private_display->lock);
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_BEGIN(__FUNCTION__);
+
private_module = private_hwc->private_module;
func_hwc = &private_module->func_hwc;
if (!func_hwc->hwc_commit) {
/* LCOV_EXCL_START */
TDM_WRN("not implemented!!");
- _pthread_mutex_unlock(&private_display->lock);
- return TDM_ERROR_NOT_IMPLEMENTED;
+ ret = TDM_ERROR_NOT_IMPLEMENTED;
+ goto done;
/* LCOV_EXCL_STOP */
}
}
if (private_module == private_display->virtual_module) {
if (!private_output->private_voutput) {
TDM_ERR("virtual module but don't have voutput");
- _pthread_mutex_unlock(&private_display->lock);
- return TDM_ERROR_BAD_MODULE;
+ ret = TDM_ERROR_BAD_MODULE;
+ goto done;
}
}
if (ret != TDM_ERROR_NONE) {
private_hwc->regist_commit_cb = 0;
TDM_ERR("hwc(%d) fail to set hwc_set_commit_handler", private_hwc->index);
- _pthread_mutex_unlock(&private_display->lock);
- return ret;
+ goto done;
/* LCOV_EXCL_STOP */
}
}
if (!hwc_commit_handler) {
/* LCOV_EXCL_START */
TDM_ERR("failed: alloc memory");
- _pthread_mutex_unlock(&private_display->lock);
- return TDM_ERROR_OUT_OF_MEMORY;
+ ret = TDM_ERROR_OUT_OF_MEMORY;
+ goto done;
/* LCOV_EXCL_STOP */
}
if (ret != TDM_ERROR_NONE) {
TDM_ERR("tdm_thread_cb_add failed");
free(hwc_commit_handler);
- _pthread_mutex_unlock(&private_display->lock);
- return ret;
+ goto done;
}
LIST_ADDTAIL(&hwc_commit_handler->link, &private_hwc->hwc_commit_handler_list);
private_hwc->index, hwc_commit_handler, func, user_data);
}
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_ASYNC_BEGIN((intptr_t)hwc_commit_handler, "[HWC_COMMIT~HANDLER] %d",
+ private_hwc->private_output->pipe);
+
+done:
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_END();
+
_pthread_mutex_unlock(&private_display->lock);
return ret;
commit_failed:
/* LCOV_EXCL_START */
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_END();
+
if (hwc_commit_handler) {
tdm_thread_cb_remove(private_hwc, TDM_THREAD_CB_HWC_COMMIT, hwc_commit_handler,
_tdm_hwc_thread_cb_commit, NULL);
_pthread_mutex_lock(&private_display->lock);
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_BEGIN(__FUNCTION__);
+
private_module = private_hwc->private_module;
func_hwc = &private_module->func_hwc;
} else {
if (!func_hwc->hwc_get_commit_fence) {
/* LCOV_EXCL_START */
- _pthread_mutex_unlock(&private_display->lock);
TDM_WRN("not implemented!!");
- return TDM_ERROR_NOT_IMPLEMENTED;
+ ret = TDM_ERROR_NOT_IMPLEMENTED;
+ goto done;
/* LCOV_EXCL_STOP */
}
ret = func_hwc->hwc_get_commit_fence(private_hwc->hwc_backend, commit_fence);
}
+
+done:
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_END();
+
_pthread_mutex_unlock(&private_display->lock);
return ret;
_pthread_mutex_lock(&private_display->lock);
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_BEGIN(__FUNCTION__);
+
private_module = private_hwc->private_module;
func_hwc = &private_module->func_hwc;
} else {
if (!func_hwc->hwc_get_release_fences) {
/* LCOV_EXCL_START */
- _pthread_mutex_unlock(&private_display->lock);
TDM_WRN("not implemented!!");
- return TDM_ERROR_NOT_IMPLEMENTED;
+ ret = TDM_ERROR_NOT_IMPLEMENTED;
+ goto done;
/* LCOV_EXCL_STOP */
}
ret = func_hwc->hwc_get_release_fences(private_hwc->hwc_backend, num_elements,
hwc_windows, fences);
}
- if (hwc_windows == NULL || fences == NULL) {
- _pthread_mutex_unlock(&private_display->lock);
- return TDM_ERROR_NONE;
- }
+ if (hwc_windows == NULL || fences == NULL)
+ goto done;
for (i = 0; i < *num_elements; i++) {
private_hwc_window = _tdm_hwc_find_private_hwc_window(private_hwc, hwc_windows[i]);
TDM_ERR("failed! This should never happen!");
tdm_hwc_window_destroy_internal(private_hwc_window);
*num_elements = 0;
- _pthread_mutex_unlock(&private_display->lock);
- return TDM_ERROR_OPERATION_FAILED;
+ ret = TDM_ERROR_OPERATION_FAILED;
+ goto done;
/* LCOV_EXCL_STOP */
}
hwc_windows[i] = (tdm_hwc_window*)private_hwc_window;
}
+done:
+ if (tdm_ttrace_module & TDM_TTRACE_HWC)
+ TDM_TRACE_END();
+
_pthread_mutex_unlock(&private_display->lock);
return ret;