gsk: Add tracing to the gl renderer
authorMatthias Clasen <mclasen@redhat.com>
Sat, 19 May 2018 19:25:17 +0000 (20:25 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 7 May 2019 16:37:59 +0000 (09:37 -0700)
Emit the equivalent of the cpu-time counter in the inspector.

gsk/gl/gskglrenderer.c

index 29e8172aa50ef20e3d59f91686b2133f799020e8..2902e8a82a79d5d7a76e1cd276a6528164746fdd 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "gdk/gdkgltextureprivate.h"
 #include "gdk/gdkglcontextprivate.h"
+#include "gdk/gdkprofilerprivate.h"
 
 #include <epoxy/gl.h>
 #include <cairo-ft.h>
@@ -3008,7 +3009,7 @@ gsk_gl_renderer_do_render (GskRenderer           *renderer,
   gsize buffer_size;
 #ifdef G_ENABLE_DEBUG
   GskProfiler *profiler;
-  gint64 gpu_time, cpu_time;
+  gint64 gpu_time, cpu_time, start_time;
 #endif
 
 #ifdef G_ENABLE_DEBUG
@@ -3116,6 +3117,7 @@ gsk_gl_renderer_do_render (GskRenderer           *renderer,
 #ifdef G_ENABLE_DEBUG
   gsk_profiler_counter_inc (profiler, self->profile_counters.frames);
 
+  start_time = gsk_profiler_timer_get_start (profiler, self->profile_timers.cpu_time);
   cpu_time = gsk_profiler_timer_end (profiler, self->profile_timers.cpu_time);
   gsk_profiler_timer_set (profiler, self->profile_timers.cpu_time, cpu_time);
 
@@ -3123,6 +3125,10 @@ gsk_gl_renderer_do_render (GskRenderer           *renderer,
   gsk_profiler_timer_set (profiler, self->profile_timers.gpu_time, gpu_time);
 
   gsk_profiler_push_samples (profiler);
+
+  if (gdk_profiler_is_running ())
+    gdk_profiler_add_mark (start_time, cpu_time, "render", "");
+
 #endif
 }