cogl/trace: Add user-visible group name

This way, it shows up as "Compositor" in Sysprof instead of
"t:XYZ".

https://gitlab.gnome.org/GNOME/mutter/merge_requests/197
This commit is contained in:
Georges Basile Stavracas Neto 2019-05-23 22:45:27 -03:00
parent 9b8f9b65b8
commit 7810f0e276
No known key found for this signature in database
GPG Key ID: 886C17EE170D1385
3 changed files with 37 additions and 11 deletions

View File

@ -34,6 +34,7 @@ typedef struct
{ {
int fd; int fd;
char *filename; char *filename;
char *group;
} TraceData; } TraceData;
static void static void
@ -42,6 +43,7 @@ trace_data_free (gpointer user_data)
TraceData *data = user_data; TraceData *data = user_data;
data->fd = -1; data->fd = -1;
g_clear_pointer (&data->group, g_free);
g_clear_pointer (&data->filename, g_free); g_clear_pointer (&data->filename, g_free);
g_free (data); g_free (data);
} }
@ -97,7 +99,7 @@ ensure_trace_context (TraceData *data)
} }
static CoglTraceThreadContext * static CoglTraceThreadContext *
cogl_trace_thread_context_new (void) cogl_trace_thread_context_new (const char *group)
{ {
CoglTraceThreadContext *thread_context; CoglTraceThreadContext *thread_context;
pid_t tid; pid_t tid;
@ -107,7 +109,8 @@ cogl_trace_thread_context_new (void)
thread_context = g_new0 (CoglTraceThreadContext, 1); thread_context = g_new0 (CoglTraceThreadContext, 1);
thread_context->cpu_id = -1; thread_context->cpu_id = -1;
thread_context->pid = getpid (); thread_context->pid = getpid ();
thread_context->group = g_strdup_printf ("t:%d", tid); thread_context->group =
group ? g_strdup (group) : g_strdup_printf ("t:%d", tid);
return thread_context; return thread_context;
} }
@ -127,7 +130,7 @@ enable_tracing_idle_callback (gpointer user_data)
return G_SOURCE_REMOVE; return G_SOURCE_REMOVE;
} }
thread_context = cogl_trace_thread_context_new (); thread_context = cogl_trace_thread_context_new (data->group);
g_private_set (&cogl_trace_thread_data, thread_context); g_private_set (&cogl_trace_thread_data, thread_context);
return G_SOURCE_REMOVE; return G_SOURCE_REMOVE;
@ -173,6 +176,7 @@ disable_tracing_idle_callback (gpointer user_data)
static void static void
set_tracing_enabled_on_thread (GMainContext *main_context, set_tracing_enabled_on_thread (GMainContext *main_context,
const char *group,
int fd, int fd,
const char *filename) const char *filename)
{ {
@ -181,6 +185,7 @@ set_tracing_enabled_on_thread (GMainContext *main_context,
data = g_new0 (TraceData, 1); data = g_new0 (TraceData, 1);
data->fd = fd; data->fd = fd;
data->group = group ? strdup (group) : NULL;
data->filename = filename ? strdup (filename) : NULL; data->filename = filename ? strdup (filename) : NULL;
source = g_idle_source_new (); source = g_idle_source_new ();
@ -196,16 +201,18 @@ set_tracing_enabled_on_thread (GMainContext *main_context,
void void
cogl_set_tracing_enabled_on_thread_with_fd (GMainContext *main_context, cogl_set_tracing_enabled_on_thread_with_fd (GMainContext *main_context,
const char *group,
int fd) int fd)
{ {
set_tracing_enabled_on_thread (main_context, fd, NULL); set_tracing_enabled_on_thread (main_context, group, fd, NULL);
} }
void void
cogl_set_tracing_enabled_on_thread (GMainContext *main_context, cogl_set_tracing_enabled_on_thread (GMainContext *main_context,
const char *group,
const char *filename) const char *filename)
{ {
set_tracing_enabled_on_thread (main_context, -1, filename); set_tracing_enabled_on_thread (main_context, group, -1, filename);
} }
void void
@ -227,14 +234,16 @@ cogl_set_tracing_disabled_on_thread (GMainContext *main_context)
#include <stdio.h> #include <stdio.h>
void void
cogl_set_tracing_enabled_on_thread_with_fd (void *data, cogl_set_tracing_enabled_on_thread_with_fd (void *data,
int fd) const char *group,
int fd)
{ {
fprintf (stderr, "Tracing not enabled"); fprintf (stderr, "Tracing not enabled");
} }
void void
cogl_set_tracing_enabled_on_thread (void *data, cogl_set_tracing_enabled_on_thread (void *data,
const char *group,
const char *filename) const char *filename)
{ {
fprintf (stderr, "Tracing not enabled"); fprintf (stderr, "Tracing not enabled");

View File

@ -52,9 +52,11 @@ extern CoglTraceContext *cogl_trace_context;
extern GMutex cogl_trace_mutex; extern GMutex cogl_trace_mutex;
void cogl_set_tracing_enabled_on_thread_with_fd (GMainContext *main_context, void cogl_set_tracing_enabled_on_thread_with_fd (GMainContext *main_context,
const char *group,
int fd); int fd);
void cogl_set_tracing_enabled_on_thread (GMainContext *main_context, void cogl_set_tracing_enabled_on_thread (GMainContext *main_context,
const char *group,
const char *filename); const char *filename);
void cogl_set_tracing_disabled_on_thread (GMainContext *main_context); void cogl_set_tracing_disabled_on_thread (GMainContext *main_context);
@ -132,9 +134,11 @@ cogl_auto_trace_end_helper (CoglTraceHead **head)
#define COGL_TRACE_END(Name) (void) 0 #define COGL_TRACE_END(Name) (void) 0
#define COGL_TRACE_BEGIN_SCOPED(Name, description) (void) 0 #define COGL_TRACE_BEGIN_SCOPED(Name, description) (void) 0
void cogl_set_tracing_enabled_on_thread_with_fd (void *data, void cogl_set_tracing_enabled_on_thread_with_fd (void *data,
int fd); const char *group,
int fd);
void cogl_set_tracing_enabled_on_thread (void *data, void cogl_set_tracing_enabled_on_thread (void *data,
const char *group,
const char *filename); const char *filename);
void cogl_set_tracing_disabled_on_thread (void *data); void cogl_set_tracing_disabled_on_thread (void *data);

View File

@ -22,6 +22,7 @@
#include "src/backends/meta-profiler.h" #include "src/backends/meta-profiler.h"
#include <glib-unix.h> #include <glib-unix.h>
#include <glib/gi18n.h>
#include <gio/gunixfdlist.h> #include <gio/gunixfdlist.h>
#include "cogl/cogl-trace.h" #include "cogl/cogl-trace.h"
@ -57,6 +58,7 @@ handle_start (MetaDBusSysprof3Profiler *dbus_profiler,
GMainContext *main_context = g_main_context_default (); GMainContext *main_context = g_main_context_default ();
GDBusMessage *message; GDBusMessage *message;
GUnixFDList *fd_list; GUnixFDList *fd_list;
const char *group_name;
int position; int position;
int fd = -1; int fd = -1;
@ -76,10 +78,21 @@ handle_start (MetaDBusSysprof3Profiler *dbus_profiler,
if (fd_list) if (fd_list)
fd = g_unix_fd_list_get (fd_list, position, NULL); fd = g_unix_fd_list_get (fd_list, position, NULL);
/* Translators: this string will appear in Sysprof */
group_name = _("Compositor");
if (fd != -1) if (fd != -1)
cogl_set_tracing_enabled_on_thread_with_fd (main_context, fd); {
cogl_set_tracing_enabled_on_thread_with_fd (main_context,
group_name,
fd);
}
else else
cogl_set_tracing_enabled_on_thread (main_context, "mutter-profile.syscap"); {
cogl_set_tracing_enabled_on_thread (main_context,
group_name,
"mutter-profile.syscap");
}
profiler->running = TRUE; profiler->running = TRUE;