[PATCH weston 1/3] timeline: Add GPU timestamp timepoint argument
Alexandros Frantzis
alexandros.frantzis at collabora.com
Thu Sep 14 11:07:33 UTC 2017
The purpose of this argument is to hold timestamp information about
events that occurred on the GPU.
---
libweston/timeline.c | 12 ++++++++++++
libweston/timeline.h | 2 ++
2 files changed, 14 insertions(+)
diff --git a/libweston/timeline.c b/libweston/timeline.c
index cf82428e..8234c27c 100644
--- a/libweston/timeline.c
+++ b/libweston/timeline.c
@@ -232,12 +232,24 @@ emit_vblank_timestamp(struct timeline_emit_context *ctx, void *obj)
return 1;
}
+static int
+emit_gpu_timestamp(struct timeline_emit_context *ctx, void *obj)
+{
+ struct timespec *ts = obj;
+
+ fprintf(ctx->cur, "\"gpu\":[%" PRId64 ", %ld]",
+ (int64_t)ts->tv_sec, ts->tv_nsec);
+
+ return 1;
+}
+
typedef int (*type_func)(struct timeline_emit_context *ctx, void *obj);
static const type_func type_dispatch[] = {
[TLT_OUTPUT] = emit_weston_output,
[TLT_SURFACE] = emit_weston_surface,
[TLT_VBLANK] = emit_vblank_timestamp,
+ [TLT_GPU] = emit_gpu_timestamp,
};
WL_EXPORT void
diff --git a/libweston/timeline.h b/libweston/timeline.h
index b10a8157..9599d813 100644
--- a/libweston/timeline.h
+++ b/libweston/timeline.h
@@ -42,6 +42,7 @@ enum timeline_type {
TLT_OUTPUT,
TLT_SURFACE,
TLT_VBLANK,
+ TLT_GPU,
};
#define TYPEVERIFY(type, arg) ({ \
@@ -53,6 +54,7 @@ enum timeline_type {
#define TLP_OUTPUT(o) TLT_OUTPUT, TYPEVERIFY(struct weston_output *, (o))
#define TLP_SURFACE(s) TLT_SURFACE, TYPEVERIFY(struct weston_surface *, (s))
#define TLP_VBLANK(t) TLT_VBLANK, TYPEVERIFY(const struct timespec *, (t))
+#define TLP_GPU(t) TLT_GPU, TYPEVERIFY(const struct timespec *, (t))
#define TL_POINT(...) do { \
if (weston_timeline_enabled_) \
--
2.14.1
More information about the wayland-devel
mailing list