From: Matthias Clasen Date: Sat, 18 Sep 2021 18:12:39 +0000 (-0400) Subject: loaders: Add profiler marks X-Git-Tag: archive/raspbian/4.6.5+ds-1+rpi1~1^2~19^2~5^2~326^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c9135546b6bd764c6fd07add93f7fc3ca246d2d8;p=gtk4.git loaders: Add profiler marks These are potentially expensive calls, we should make sure they show up in profiles. --- diff --git a/gdk/loaders/gdkjpeg.c b/gdk/loaders/gdkjpeg.c index c64a0ea99d..68832de078 100644 --- a/gdk/loaders/gdkjpeg.c +++ b/gdk/loaders/gdkjpeg.c @@ -23,6 +23,8 @@ #include "gdktexture.h" #include "gdkmemorytextureprivate.h" +#include "gdkprofilerprivate.h" + #include #include #include @@ -174,6 +176,7 @@ gdk_load_jpeg (GBytes *input_bytes, GBytes *bytes; GdkTexture *texture; GdkMemoryFormat format; + G_GNUC_UNUSED guint64 before = GDK_PROFILER_CURRENT_TIME; info.err = jpeg_std_error (&jerr.pub); jerr.pub.error_exit = fatal_error_handler; @@ -260,6 +263,8 @@ gdk_load_jpeg (GBytes *input_bytes, g_bytes_unref (bytes); + gdk_profiler_end_mark (before, "jpeg load", NULL); + return texture; } diff --git a/gdk/loaders/gdkpng.c b/gdk/loaders/gdkpng.c index 80fca2460b..4c32533e36 100644 --- a/gdk/loaders/gdkpng.c +++ b/gdk/loaders/gdkpng.c @@ -21,6 +21,7 @@ #include "gdkintl.h" #include "gdkmemorytextureprivate.h" +#include "gdkprofilerprivate.h" #include "gdktexture.h" #include "gdktextureprivate.h" #include "gsk/ngl/fp16private.h" @@ -291,7 +292,7 @@ premultiply_16bit (guchar *data, } /* }}} */ -/* {{{ Public API */ +/* {{{ Public API */ GdkTexture * gdk_load_png (GBytes *bytes, @@ -309,6 +310,7 @@ gdk_load_png (GBytes *bytes, GBytes *out_bytes; GdkTexture *texture; int bpp; + G_GNUC_UNUSED gint64 before = GDK_PROFILER_CURRENT_TIME; io.data = (guchar *)g_bytes_get_data (bytes, &io.size); io.position = 0; @@ -449,6 +451,13 @@ gdk_load_png (GBytes *bytes, g_free (row_pointers); png_destroy_read_struct (&png, &info, NULL); + if (GDK_PROFILER_IS_RUNNING) + { + gint64 end = GDK_PROFILER_CURRENT_TIME; + if (end - before > 500000) + gdk_profiler_add_mark (before, end - before, "png load", NULL); + } + return texture; } diff --git a/gdk/loaders/gdktiff.c b/gdk/loaders/gdktiff.c index 62d2194f0c..9f8ec837f1 100644 --- a/gdk/loaders/gdktiff.c +++ b/gdk/loaders/gdktiff.c @@ -21,6 +21,7 @@ #include "gdkintl.h" #include "gdkmemorytextureprivate.h" +#include "gdkprofilerprivate.h" #include "gdktexture.h" #include "gdktextureprivate.h" @@ -411,6 +412,7 @@ gdk_load_tiff (GBytes *input_bytes, int bpp; GBytes *bytes; GdkTexture *texture; + G_GNUC_UNUSED gint64 before = GDK_PROFILER_CURRENT_TIME; tif = tiff_open_read (input_bytes); @@ -505,6 +507,13 @@ gdk_load_tiff (GBytes *input_bytes, TIFFClose (tif); + if (GDK_PROFILER_IS_RUNNING) + { + gint64 end = GDK_PROFILER_CURRENT_TIME; + if (end - before > 500000) + gdk_profiler_add_mark (before, end - before, "tiff load", NULL); + } + return texture; }