[gtk] Add clock freezes to the profile
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk] Add clock freezes to the profile
- Date: Thu, 16 May 2019 20:51:03 +0000 (UTC)
commit 7e59ec4afcd8667e2ea4128acb3e321132838e86
Author: Matthias Clasen <mclasen redhat com>
Date: Thu May 16 20:50:31 2019 +0000
Add clock freezes to the profile
gdk/gdkframeclockidle.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
---
diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c
index bb1e9c359c..92f5449f93 100644
--- a/gdk/gdkframeclockidle.c
+++ b/gdk/gdkframeclockidle.c
@@ -42,6 +42,9 @@ struct _GdkFrameClockIdlePrivate
gint64 frame_time;
gint64 min_next_frame_time;
gint64 sleep_serial;
+#ifdef G_ENABLE_DEBUG
+ gint64 freeze_time;
+#endif
guint flush_idle_id;
guint paint_idle_id;
@@ -558,6 +561,14 @@ gdk_frame_clock_idle_freeze (GdkFrameClock *clock)
GdkFrameClockIdle *clock_idle = GDK_FRAME_CLOCK_IDLE (clock);
GdkFrameClockIdlePrivate *priv = clock_idle->priv;
+#ifdef G_ENABLE_DEBUG
+ if (priv->freeze_count == 0)
+ {
+ if (gdk_profiler_is_running ())
+ priv->freeze_time = g_get_monotonic_time ();
+ }
+#endif
+
priv->freeze_count++;
maybe_stop_idle (clock_idle);
}
@@ -582,6 +593,20 @@ gdk_frame_clock_idle_thaw (GdkFrameClock *clock)
priv->phase = GDK_FRAME_CLOCK_PHASE_NONE;
priv->sleep_serial = get_sleep_serial ();
+
+#ifdef G_ENABLE_DEBUG
+ if (gdk_profiler_is_running ())
+ {
+ if (priv->freeze_time != 0)
+ {
+ gint64 thaw_time = g_get_monotonic_time ();
+ gdk_profiler_add_mark (priv->freeze_time * 1000,
+ (thaw_time - priv->freeze_time) * 1000,
+ "freeze", "");
+ priv->freeze_time = 0;
+ }
+ }
+#endif
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]