[gtk/wip/chergert/glproto: 467/493] fix cache reclamation




commit 716063c82da75950273db62ecf75b17d81414524
Author: Christian Hergert <chergert redhat com>
Date:   Tue Feb 16 15:09:44 2021 -0800

    fix cache reclamation
    
    we were never getting cache hits, oops.

 gsk/next/gskgldriver.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/gsk/next/gskgldriver.c b/gsk/next/gskgldriver.c
index 626e84f457..03cb15a356 100644
--- a/gsk/next/gskgldriver.c
+++ b/gsk/next/gskgldriver.c
@@ -135,7 +135,7 @@ gsk_next_driver_collect_unused_textures (GskNextDriver *self,
       if (t->user || t->permanent)
         continue;
 
-      if (t->last_used_in_frame < watermark)
+      if (t->last_used_in_frame <= watermark)
         {
           g_hash_table_iter_steal (&iter);
 
@@ -512,10 +512,14 @@ void
 gsk_next_driver_begin_frame (GskNextDriver     *self,
                              GskGLCommandQueue *command_queue)
 {
+  gint64 last_frame_id;
+
   g_return_if_fail (GSK_IS_NEXT_DRIVER (self));
   g_return_if_fail (GSK_IS_GL_COMMAND_QUEUE (command_queue));
   g_return_if_fail (self->in_frame == FALSE);
 
+  last_frame_id = self->current_frame_id;
+
   self->in_frame = TRUE;
   self->current_frame_id++;
 
@@ -532,7 +536,7 @@ gsk_next_driver_begin_frame (GskNextDriver     *self,
    * of the following frame instead of the end so that we reduce chances
    * we block on any resources while delivering our frames.
    */
-  gsk_next_driver_collect_unused_textures (self, self->current_frame_id);
+  gsk_next_driver_collect_unused_textures (self, last_frame_id - 1);
 }
 
 /**


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]