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 {
/* 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 {
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);
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);
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);