gdkwindow: Store children list nodes in GdkWindow structure

This avoids a bunch of allocations, and additionally it has better
cache behaviour, as we don't follow pointers to the separate GList
node memory areas during traversal.

From Christian Hergert:

  This machine is a Retina mac book pro so I've been working on getting
  GtkTextView (GtkPixelCache) up to our performance level on
  X11/Wayland. I'm seeing a jump from about 43 FPS to about 50 FPS.

https://bugzilla.gnome.org/show_bug.cgi?id=754687
This commit is contained in:
Alexander Larsson
2015-09-10 12:57:16 +02:00
parent 0175cd8ae7
commit ea294fd92c
2 changed files with 53 additions and 18 deletions

View File

@ -212,8 +212,10 @@ struct _GdkWindow
GList *filters;
GList *children;
GList children_list_node;
GList *native_children;
cairo_pattern_t *background;
/* The paint logic here is a bit complex because of our intermingling of