gsk: Avoid reuploading textures too much
authorMatthias Clasen <mclasen@redhat.com>
Sat, 18 Mar 2023 02:28:27 +0000 (22:28 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 18 Mar 2023 02:31:10 +0000 (22:31 -0400)
When filtering changes for an already-cached
texture, we need to clear the render data
before setting the new one, otherwise it
does not take and we end up reuploading
the texture every frame.

gsk/gl/gskgldriver.c

index af3d8e3b93d5c6631f1fac146e0021e304b4364d..39b987a9cdb3823260b811e0d9f823b3345f282a 100644 (file)
@@ -777,6 +777,8 @@ gsk_gl_driver_load_texture (GskGLDriver *self,
 
   g_hash_table_insert (self->textures, GUINT_TO_POINTER (texture_id), t);
 
+  gdk_texture_clear_render_data (texture);
+
   if (gdk_texture_set_render_data (texture, self, t, gsk_gl_texture_destroyed))
     t->user = texture;