add ttrace accepted/tizen/common/20160301.120653 accepted/tizen/ivi/20160228.232159 accepted/tizen/ivi/20160229.095458 accepted/tizen/mobile/20160228.232050 accepted/tizen/mobile/20160229.095400 accepted/tizen/tv/20160228.232112 accepted/tizen/tv/20160229.095414 accepted/tizen/wearable/20160228.232143 accepted/tizen/wearable/20160229.095435 submit/tizen/20160228.234815 submit/tizen/20160229.555555 submit/tizen_common/20160229.190608
authorBoram Park <boram1288.park@samsung.com>
Sun, 28 Feb 2016 22:35:43 +0000 (07:35 +0900)
committerBoram Park <boram1288.park@samsung.com>
Sun, 28 Feb 2016 22:35:43 +0000 (07:35 +0900)
Change-Id: I3312d93151cbf7f73dd26e0976a278c11cbb3fc8

configure.ac
packaging/libtdm.spec
src/tdm.c
src/tdm_private.h

index 65505d6..3da1d84 100644 (file)
@@ -34,6 +34,13 @@ AC_ARG_WITH(tdm-module-path, AS_HELP_STRING([--with-tdm-module-path=PATH], [tdm
                                [ TDM_MODULE_PATH="${DEFAULT_TDM_MODULE_PATH}" ])
 AC_DEFINE_UNQUOTED(TDM_MODULE_PATH, "${TDM_MODULE_PATH}", [Directory for the modules of tdm])
 
+PKG_CHECK_MODULES(TTRACE,
+               [ttrace],
+               [have_ttrace="yes"], [have_ttrace="no"])
+if test "x$have_ttrace" = "xyes"; then
+       AC_DEFINE(HAVE_TTRACE, 1, [ttrace available])
+fi
+
 # For enumerating devices in test case
 AC_SUBST(WARN_CFLAGS)
 AC_OUTPUT([
index 7069bbd..43d4969 100644 (file)
@@ -9,6 +9,7 @@ Source1001:         %{name}.manifest
 BuildRequires:  pkgconfig(pthread-stubs)
 BuildRequires:  pkgconfig(libtbm)
 BuildRequires:  pkgconfig(libpng)
+BuildRequires:  pkgconfig(ttrace)
 
 %description
 Common user library of Tizen Display Manager : libtdm front-end library
index 9072770..699450c 100644 (file)
--- a/src/tdm.c
+++ b/src/tdm.c
@@ -624,10 +624,13 @@ _tdm_display_load_module_with_file(tdm_private_display *private_display, const c
 
     snprintf(path, sizeof(path), TDM_MODULE_PATH "/%s", file);
 
+    TDM_TRACE_BEGIN(Load_Backend);
+
     module = dlopen(path, RTLD_LAZY);
     if (!module)
     {
         TDM_ERR("failed to load module: %s(%s)", dlerror(), file);
+        TDM_TRACE_END();
         return TDM_ERROR_BAD_MODULE;
     }
 
@@ -636,6 +639,7 @@ _tdm_display_load_module_with_file(tdm_private_display *private_display, const c
     {
         TDM_ERR("'%s' doesn't have data object", file);
         ret = TDM_ERROR_BAD_MODULE;
+        TDM_TRACE_END();
         goto failed_load;
     }
 
@@ -647,8 +651,12 @@ _tdm_display_load_module_with_file(tdm_private_display *private_display, const c
     if (ret != TDM_ERROR_NONE)
         goto failed_load;
 
+    TDM_TRACE_END();
+
     /* We don't care if backend_data is NULL or not. It's up to backend. */
+    TDM_TRACE_BEGIN(Init_Backend);
     private_display->bdata = module_data->init((tdm_display*)private_display, &ret);
+    TDM_TRACE_END();
     if (ret != TDM_ERROR_NONE)
     {
         TDM_ERR("'%s' init failed", file);
@@ -765,11 +773,15 @@ tdm_display_init(tdm_error *error)
     if (ret != TDM_ERROR_NONE)
         goto failed_load;
 
+    TDM_TRACE_BEGIN(Update_Display);
     ret = _tdm_display_update_internal(private_display, 0);
+    TDM_TRACE_END();
     if (ret != TDM_ERROR_NONE)
         goto failed_update;
 
+    TDM_TRACE_BEGIN(Bufmgr_Init);
     ret = _tdm_display_init_bufmgr(private_display);
+    TDM_TRACE_END();
     if (ret != TDM_ERROR_NONE)
         goto failed_update;
 
index ec46009..78a7990 100644 (file)
@@ -120,6 +120,15 @@ extern "C" {
     }\
 }
 
+#ifdef HAVE_TTRACE
+#include <ttrace.h>
+#define TDM_TRACE_BEGIN(NAME) traceBegin(TTRACE_TAG_GRAPHICS, "TDM:"#NAME)
+#define TDM_TRACE_END() traceEnd(TTRACE_TAG_GRAPHICS)
+#else
+#define TDM_TRACE_BEGIN(NAME)
+#define TDM_TRACE_END()
+#endif
+
 #define TDM_NEVER_GET_HERE() TDM_ERR("** NEVER GET HERE **")
 
 #define TDM_SNPRINTF(p, len, fmt, ARG...)  \