WIP: Optimize st_theme_node_paint_borders
- Group multiple draw calls into one.
- Use clears for opaque regions.
On Intel graphics at least this seems to be roughly 4x faster so
reduces the overview render time by about 15% (particularly because
overviewGroup
is a solid colour).
When combined with !1843 (closed) this practically eliminates the performance penalty of theme node painting, making it just as fast as commenting out st_widget_paint_background
entirely. That's to say halving the render time of the overview
FIXME:
-
Triggers graphics glitches the same as !1846 (closed). Workaround: CLUTTER_PAINT=disable-clipped-redraws
-
(Maybe) If you also merge the clears into one using a Cairo region (vanvugt/gnome-shell@b6fbaf3c) then the cogl clipping bugs get much worse.
Edited by Daniel van Vugt