From 25aeac4a90513359d0080b971862e4fa9cd2c63d Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Wed, 26 Jan 2022 05:16:45 +0100 Subject: [PATCH] babl: only show active luts during gc on info_level>=4 --- babl/babl-fish-path.c | 26 +++++++++++++++++++------- babl/babl-internal.h | 4 ---- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/babl/babl-fish-path.c b/babl/babl-fish-path.c index c9c2151..986e359 100644 --- a/babl/babl-fish-path.c +++ b/babl/babl-fish-path.c @@ -67,7 +67,7 @@ static int gc_fishes (Babl *babl, void *userdata) babl_get_name (babl->conversion.destination), lut_unused_minutes_limit); } - else + else if (lut_info_level >=4) { LUT_DETAIL("active LUT %s to %s ,%8li pixels last used %.1f minutes ago\n", babl_get_name (babl->conversion.source), @@ -76,6 +76,14 @@ static int gc_fishes (Babl *babl, void *userdata) (context->time - babl->fish_path.last_lut_use)/1000.0/1000.0/60.0); } } + else if (lut_info_level >= 5 && babl->fish.pixels) + { + LUT_DETAIL("%i step path %s to %s ,%8li pixels\n", + -1, + babl_get_name (babl->conversion.source), + babl_get_name (babl->conversion.destination), + babl->fish.pixels); + } } return 0; } @@ -85,6 +93,10 @@ babl_gc_fishes (void) { GcContext context; context.time = babl_ticks (); + if (lut_info_level >= 5) + { + fprintf (stdout, "\e[H\e[2J"); + } babl_fish_class_for_each (gc_fishes, &context); //malloc_trim (0); // is responsibility of higher layers @@ -93,7 +105,7 @@ babl_gc_fishes (void) #define BABL_LIKELY(x) __builtin_expect(!!(x), 1) #define BABL_UNLIKELY(x) __builtin_expect(!!(x), 0) -static long timings[256] = {0,}; +static float timings[256] = {0,}; static inline void _do_lut (uint32_t *lut, int source_bpp, @@ -196,7 +208,7 @@ void do_lut (uint32_t *lut, _do_lut (lut, source_bpp, dest_bpp, source, dest, count); } -static inline long lut_timing_for (int source_bpp, int dest_bpp) +static inline float lut_timing_for (int source_bpp, int dest_bpp) { return timings[source_bpp * 16 + dest_bpp]; } @@ -230,8 +242,8 @@ static void measure_timings(void) _do_lut (lut, source_bpp, dest_bpp, src, dst, num_pixels); end = babl_ticks (); - timings[source_bpp * 16 + dest_bpp] = (end-start)/1000; - LUT_LOG (" %ibpp to %ibpp: %i\n", source_bpp, dest_bpp, + timings[source_bpp * 16 + dest_bpp] = (end-start)/1000.0; + LUT_LOG (" %ibpp to %ibpp: %.2f\n", source_bpp, dest_bpp, timings[source_bpp * 16 + dest_bpp] ); } @@ -257,7 +269,6 @@ static int babl_fish_lut_process_maybe (const Babl *babl, int source_bpp = babl->fish_path.source_bpp; int dest_bpp = babl->fish_path.dest_bpp; uint32_t *lut = (uint32_t*)babl->fish_path.u8_lut; - BABL(babl)->fish.pixels += n; if (BABL_UNLIKELY(!lut && babl->fish.pixels >= 128 * 256)) @@ -1036,7 +1047,7 @@ babl_fish_path2 (const Babl *source, float scaling = 10.0; if (!measured_timings) measure_timings (); measured_timings = 1; - LUT_LOG ("%sLUT for %s to %s %.0f%s%.0f\n", + LUT_LOG ("%sLUT for %s to %s %.2f%s%.2f\n", ((lut_timing_for (source_bpp, dest_bpp) * scaling) < babl->fish_path.cost)?"possible ":"no ", @@ -1108,6 +1119,7 @@ babl_fish_path_process (const Babl *babl, long n, void *data) { + BABL(babl)->fish.pixels += n; if (babl->fish_path.is_u8_color_conv) { if (babl_fish_lut_process_maybe (babl, diff --git a/babl/babl-internal.h b/babl/babl-internal.h index ec6008b..4bdc487 100644 --- a/babl/babl-internal.h +++ b/babl/babl-internal.h @@ -430,8 +430,6 @@ void babl_space_to_xyz (const Babl *space, const double *rgb, double *xyz); */ void babl_space_from_xyz (const Babl *space, const double *xyz, double *rgb); -extern int _babl_instrument; - static inline void babl_conversion_process (const Babl *babl, const char *source, @@ -439,8 +437,6 @@ babl_conversion_process (const Babl *babl, long n) { BablConversion *conversion = (BablConversion *) babl; - if (_babl_instrument) - conversion->pixels += n; conversion->dispatch (babl, source, destination, n, conversion->data); } -- 2.30.2