When opening the overview, all icons create shadow pipelines, which adds up to lag / slowdowns over time
Affected version
Fedora 39 Silverblue, Wayland, gnome-shell 45.1 + !3001 (merged) + !3004 (merged)
Bug summary
Every time when opening the overview, all StIcon
s generate shadow pipelines in their paint()
. This takes ~1.5 ms per icon. Also, identical icons all generate shadow pipelines individually, rather than sharing.
This is one of the main contributors to the first frame of opening the overview taking a while to process, especially with many windows open.
Here's a Tracy profile of an overview opening frame:
This issue is about the right part of this profile, the paint
. Here's it zoomed-in:
As you can see, most of this time is taken up by the shadow pipeline generation. Dark stripes are blocking syscalls, in this case to allocate textures and such.
Steps to reproduce
- Open a lot of windows (bind a key to spawn a terminal, then hold it for a bit).
- Open the overview.
What happened
The first frame takes a while, with enough windows skipping the animation entirely.
What did you expect to happen
The problem is not this severe.