Skip to content

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

Merge request reports