diff --git a/libweston/compositor.c b/libweston/compositor.c index d06eccba..2d46546e 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -2368,8 +2368,7 @@ surface_flush_damage(struct weston_surface *surface) wl_shm_buffer_get(surface->buffer_ref.buffer->resource)) surface->compositor->renderer->flush_damage(surface); - if (weston_timeline_enabled_ && - pixman_region32_not_empty(&surface->damage)) + if (pixman_region32_not_empty(&surface->damage)) TL_POINT("core_flush_damage", TLP_SURFACE(surface), TLP_OUTPUT(surface->output), TLP_END); @@ -3528,9 +3527,8 @@ weston_surface_commit_state(struct weston_surface *surface, state->buffer_viewport.changed = 0; /* wl_surface.damage and wl_surface.damage_buffer */ - if (weston_timeline_enabled_ && - (pixman_region32_not_empty(&state->damage_surface) || - pixman_region32_not_empty(&state->damage_buffer))) + if (pixman_region32_not_empty(&state->damage_surface) || + pixman_region32_not_empty(&state->damage_buffer)) TL_POINT("core_commit_damage", TLP_SURFACE(surface), TLP_END); pixman_region32_union(&surface->damage, &surface->damage, @@ -6919,19 +6917,6 @@ weston_environment_get_fd(const char *env) return fd; } -static void -timeline_key_binding_handler(struct weston_keyboard *keyboard, - const struct timespec *time, uint32_t key, - void *data) -{ - struct weston_compositor *compositor = data; - - if (weston_timeline_enabled_) - weston_timeline_close(); - else - weston_timeline_open(compositor); -} - static const char * output_repaint_status_text(struct weston_output *output) { @@ -7303,9 +7288,6 @@ weston_compositor_create(struct wl_display *display, weston_layer_set_position(&ec->cursor_layer, WESTON_LAYER_POSITION_CURSOR); - weston_compositor_add_debug_binding(ec, KEY_T, - timeline_key_binding_handler, ec); - ec->debug_scene = weston_compositor_add_log_scope(ec->weston_log_ctx, "scene-graph", "Scene graph details\n", diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c index fa472e03..e65306bf 100644 --- a/libweston/renderer-gl/gl-renderer.c +++ b/libweston/renderer-gl/gl-renderer.c @@ -287,8 +287,7 @@ timeline_submit_render_sync(struct gl_renderer *gr, int fd; struct timeline_render_point *trp; - if (!weston_timeline_enabled_ || - !gr->has_native_fence_sync || + if (!gr->has_native_fence_sync || sync == EGL_NO_SYNC_KHR) return; diff --git a/libweston/timeline.c b/libweston/timeline.c index 84b221a8..144a593d 100644 --- a/libweston/timeline.c +++ b/libweston/timeline.c @@ -1,6 +1,6 @@ /* * Copyright © 2014 Pekka Paalanen - * Copyright © 2014 Collabora, Ltd. + * Copyright © 2014, 2019 Collabora, Ltd. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the @@ -34,87 +34,8 @@ #include "timeline.h" #include -#include "shared/file-util.h" - -struct timeline_log { - clock_t clk_id; - FILE *file; - unsigned series; - struct wl_listener compositor_destroy_listener; -}; WL_EXPORT int weston_timeline_enabled_; -static struct timeline_log timeline_ = { CLOCK_MONOTONIC, NULL, 0 }; - -static int -weston_timeline_do_open(void) -{ - const char *prefix = "weston-timeline-"; - const char *suffix = ".log"; - char fname[1000]; - - timeline_.file = file_create_dated(NULL, prefix, suffix, - fname, sizeof(fname)); - if (!timeline_.file) { - const char *msg; - - switch (errno) { - case ETIME: - msg = "failure in datetime formatting"; - break; - default: - msg = strerror(errno); - } - - weston_log("Cannot open '%s*%s' for writing: %s\n", - prefix, suffix, msg); - return -1; - } - - weston_log("Opened timeline file '%s'\n", fname); - - return 0; -} - -static void -timeline_notify_destroy(struct wl_listener *listener, void *data) -{ - weston_timeline_close(); -} - -void -weston_timeline_open(struct weston_compositor *compositor) -{ - if (weston_timeline_enabled_) - return; - - if (weston_timeline_do_open() < 0) - return; - - timeline_.compositor_destroy_listener.notify = timeline_notify_destroy; - wl_signal_add(&compositor->destroy_signal, - &timeline_.compositor_destroy_listener); - - if (++timeline_.series == 0) - ++timeline_.series; - - weston_timeline_enabled_ = 1; -} - -void -weston_timeline_close(void) -{ - if (!weston_timeline_enabled_) - return; - - weston_timeline_enabled_ = 0; - - wl_list_remove(&timeline_.compositor_destroy_listener.link); - - fclose(timeline_.file); - timeline_.file = NULL; - weston_log("Timeline log file closed.\n"); -} struct timeline_emit_context { FILE *cur; @@ -262,15 +183,12 @@ weston_timeline_point(const char *name, ...) char buf[512]; struct timeline_emit_context ctx; - clock_gettime(timeline_.clk_id, &ts); + clock_gettime(CLOCK_MONOTONIC, &ts); - ctx.out = timeline_.file; ctx.cur = fmemopen(buf, sizeof(buf), "w"); - ctx.series = timeline_.series; if (!ctx.cur) { weston_log("Timeline error in fmemopen, closing.\n"); - weston_timeline_close(); return; } @@ -295,7 +213,6 @@ weston_timeline_point(const char *name, ...) fflush(ctx.cur); if (ferror(ctx.cur)) { weston_log("Timeline error in constructing entry, closing.\n"); - weston_timeline_close(); } else { fprintf(ctx.out, "%s", buf); } diff --git a/libweston/timeline.h b/libweston/timeline.h index 9599d813..6feafa35 100644 --- a/libweston/timeline.h +++ b/libweston/timeline.h @@ -1,6 +1,6 @@ /* * Copyright © 2014 Pekka Paalanen - * Copyright © 2014 Collabora, Ltd. + * Copyright © 2014, 2019 Collabora, Ltd. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the @@ -29,14 +29,6 @@ extern int weston_timeline_enabled_; -struct weston_compositor; - -void -weston_timeline_open(struct weston_compositor *compositor); - -void -weston_timeline_close(void); - enum timeline_type { TLT_END = 0, TLT_OUTPUT, @@ -45,7 +37,7 @@ enum timeline_type { TLT_GPU, }; -#define TYPEVERIFY(type, arg) ({ \ +#define TYPEVERIFY(type, arg) ({ \ typeof(arg) tmp___ = (arg); \ (void)((type)0 == tmp___); \ tmp___; }) diff --git a/man/weston-bindings.man b/man/weston-bindings.man index ee55e406..e88a9e85 100644 --- a/man/weston-bindings.man +++ b/man/weston-bindings.man @@ -124,10 +124,9 @@ Rotate the window (if supported) .SS DEBUG BINDINGS The combination \fBmod + Shift + Space\fR begins a debug binding. Debug bindings are completed by pressing an additional key. For example, pressing -T next may toggle timeline recording, and F may toggle texture mesh -wireframes with the GL renderer. (In fact, most debug effects can be -disabled again by repeating the command.) Debug bindings are often tied to -specific backends. +F may toggle texture mesh wireframes with the GL renderer. +(In fact, most debug effects can be disabled again by repeating the command.) +Debug bindings are often tied to specific backends. .SH "SEE ALSO" .BR weston (1),