monitor: enhance ttrace option for layer, pp, capture
[platform/core/uifw/libtdm.git] / src / tdm_private.h
index 2a927db..8c710a8 100644 (file)
@@ -86,20 +86,35 @@ enum {
        TDM_DEBUG_COMMIT    = (1 << 5),
 };
 
+enum {
+       TDM_TTRACE_NONE,
+       TDM_TTRACE_VBLANK    = (1 << 0),
+       TDM_TTRACE_CLIENT    = (1 << 1),
+       TDM_TTRACE_LAYER     = (1 << 2),
+       TDM_TTRACE_PP        = (1 << 3),
+       TDM_TTRACE_CAPTURE   = (1 << 4),
+};
+
 extern int tdm_debug_module;
 extern int tdm_debug_dump;
+extern int tdm_ttrace_module;
+extern int tdm_ttrace_output;
 
 #ifdef HAVE_TTRACE
 #include <ttrace.h>
-#define TDM_TRACE_BEGIN(NAME) traceBegin(TTRACE_TAG_GRAPHICS, "TDM:"#NAME)
+#define TDM_TRACE_BEGIN(fmt, ...) traceBegin(TTRACE_TAG_GRAPHICS, fmt, ##__VA_ARGS__)
 #define TDM_TRACE_END() traceEnd(TTRACE_TAG_GRAPHICS)
-#define TDM_TRACE_COUNT(NAME, COUNT) traceCounter(TTRACE_TAG_GRAPHICS, COUNT, "TDM:"#NAME)
-#define TDM_TRACE_MARK(NAME) traceMark(TTRACE_TAG_GRAPHICS, "TDM:"#NAME)
+#define TDM_TRACE_ASYNC_BEGIN(key, name,...) traceAsyncBegin(TTRACE_TAG_GRAPHICS, key, name, ##__VA_ARGS__)
+#define TDM_TRACE_ASYNC_END(key, name,...) traceAsyncEnd(TTRACE_TAG_GRAPHICS, key, name, ##__VA_ARGS__)
+#define TDM_TRACE_COUNT(count, fmt, ...) traceCounter(TTRACE_TAG_GRAPHICS, count, fmt, ##__VA_ARGS__)
+#define TDM_TRACE_MARK(fmt, ...) traceMark(TTRACE_TAG_GRAPHICS, fmt, ##__VA_ARGS__)
 #else
-#define TDM_TRACE_BEGIN(NAME)
+#define TDM_TRACE_BEGIN(fmt, ...)
 #define TDM_TRACE_END()
-#define TDM_TRACE_COUNT(NAME, COUNT)
-#define TDM_TRACE_MARK(NAME)
+#define TDM_TRACE_ASYNC_BEGIN(key, name,...)
+#define TDM_TRACE_ASYNC_END(key, name,...)
+#define TDM_TRACE_COUNT(count, fmt, ...)
+#define TDM_TRACE_MARK(fmt, ...)
 #endif
 
 typedef enum {
@@ -231,6 +246,9 @@ struct _tdm_private_output {
        /* calling a output commit per a vblank */
        int commit_per_vblank;
        tdm_commit_type commit_type;
+
+       /* for ttrace vblank */
+       tdm_vblank *ttrace_vblank;
 };
 
 struct _tdm_private_layer {
@@ -491,6 +509,8 @@ tdm_error
 tdm_vblank_set_add_front(tdm_vblank *vblank, unsigned int add_front);
 tdm_error
 tdm_vblank_set_resource(tdm_vblank *vblank, struct wl_resource *resource);
+double
+tdm_vblank_get_stamp(tdm_vblank *vblank);
 tdm_error
 tdm_vblank_set_client_vblank_fps(unsigned int pid, const char *name, unsigned int fps);
 void
@@ -509,7 +529,7 @@ void
 tdm_pp_destroy_internal(tdm_private_pp *private_pp);
 
 tdm_hwc_window *
-tdm_hwc_window_create_internal(tdm_private_output *private_output, tdm_error *error);
+tdm_hwc_window_create_internal(tdm_private_output *private_output, int is_video, tdm_error *error);
 tdm_error
 tdm_hwc_window_destroy_internal(tdm_private_hwc_window * private_hwc_window);
 
@@ -647,6 +667,8 @@ void
 tdm_server_deinit(tdm_private_loop *private_loop);
 const char*
 tdm_server_get_client_name(pid_t pid);
+tdm_error
+tdm_server_enable_ttrace_client_vblank(tdm_display *dpy, tdm_output *output, int enable);
 
 char *
 tdm_helper_dump_make_directory(const char *path, char *reply, int *len);
@@ -741,7 +763,7 @@ tdm_display_enable_dump(tdm_private_display *private_display, const char *dump_s
 tdm_error
 tdm_display_enable_path(const char *path);
 tdm_error
-tdm_display_enable_ttrace_vblank(tdm_display *dpy, tdm_output *output, int enable);
+tdm_display_enable_ttrace(tdm_private_display *private_display, const char *ttrace, int output_id, char *reply, int *len);
 tdm_error
 tdm_display_enable_fps(tdm_private_display *private_display, int enable);