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
TLT_OUTPUT,
TLT_SURFACE,
TLT_VBLANK,
+ TLT_GPU,
};
#define TYPEVERIFY(type, arg) ({ \
#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_) \