From e0803f039fe44ef3d09f1d701142800c071abea4 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 2 Jun 2019 20:55:34 +0000 Subject: [PATCH] gl: Fix glyph cache aging The logic here seems faulty. We want to keep a timestamp that tells us when the glyph was last used, so always update the timestamp. And whenever we use a glyph, it turns 'young' again, so remove it from the old pixels accounting. The (MAX_AGE, MAX_AGE+CHECK_INTERVAL) interval is only relevant to prevent us from turning a cached glyph old more than once, and that is already taken care of. --- gsk/gl/gskglglyphcache.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gsk/gl/gskglglyphcache.c b/gsk/gl/gskglglyphcache.c index 8f80ac6552..eb2628fb86 100644 --- a/gsk/gl/gskglglyphcache.c +++ b/gsk/gl/gskglglyphcache.c @@ -308,15 +308,15 @@ gsk_gl_glyph_cache_lookup (GskGLGlyphCache *cache, { const guint age = cache->timestamp - value->timestamp; - if (MAX_AGE <= age && age < MAX_AGE + CHECK_INTERVAL) + if (MAX_AGE <= age) { GskGLGlyphAtlas *atlas = value->atlas; if (atlas) atlas->old_pixels -= value->draw_width * value->draw_height; - - value->timestamp = cache->timestamp; } + + value->timestamp = cache->timestamp; } if (create && value == NULL)