diff --git a/include/libweston/libweston.h b/include/libweston/libweston.h index e73797658..4502829e6 100644 --- a/include/libweston/libweston.h +++ b/include/libweston/libweston.h @@ -1559,6 +1559,7 @@ struct weston_compositor { struct wl_list debug_binding_list; bool view_list_needs_rebuild; + int global_weston_surface_disambiguator; /* surface ids to avoid using PID-reuse */ uint32_t state; struct wl_event_source *idle_source; @@ -2071,6 +2072,7 @@ struct weston_surface { bool is_mapped, is_unmapping, is_mapping; bool is_opaque; + uint32_t s_id; /* An list of per seat pointer constraints. */ struct wl_list pointer_constraints; diff --git a/libweston/compositor.c b/libweston/compositor.c index ef72bcd5e..55e9a7ffb 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -1010,6 +1010,9 @@ weston_surface_create(struct weston_compositor *compositor) surface->compositor = compositor; surface->ref_count = 1; + compositor->global_weston_surface_disambiguator++; + surface->s_id = + compositor->global_weston_surface_disambiguator; surface->buffer_viewport.buffer.transform = WL_OUTPUT_TRANSFORM_NORMAL; surface->buffer_viewport.buffer.scale = 1; diff --git a/libweston/timeline-perfetto.c b/libweston/timeline-perfetto.c index a03eab86f..e167f3d4a 100644 --- a/libweston/timeline-perfetto.c +++ b/libweston/timeline-perfetto.c @@ -57,7 +57,6 @@ weston_perfetto_ensure_output_ids(struct weston_output *output) static void build_track_name(struct weston_surface *surface, char *name, int size) { - static int disambiguator = 0; char surface_label[512]; /* Make sure we only call this once, so we don't accidentally @@ -70,12 +69,10 @@ build_track_name(struct weston_surface *surface, char *name, int size) uint32_t res_id; res_id = wl_resource_get_id(surface->resource); - snprintf(surface_label, sizeof(surface_label), "surface %d", res_id); + snprintf(surface_label, sizeof(surface_label), "unlabelled surface %d", res_id); } - disambiguator++; - - snprintf(name, size, "%s #%d", surface_label, disambiguator); + snprintf(name, size, "%s #%d", surface_label, surface->s_id); } static void