SUMMARY When I have a sizable notification history, scrolling it takes around 3 seconds to render next frame and is thus too jumpy to be usable. STEPS TO REPRODUCE 1. Receive a bunch of notifications 2. Open the Notifications plasmoid 3. Try scrolling (touchpad here) SOFTWARE/OS VERSIONS Operating System: openSUSE Leap 15.2 KDE Plasma Version: 5.21.4 KDE Frameworks Version: 5.81.0 Qt Version: 5.15.2 Graphics Platform: X11 Processors: 8 × Intel® Core™ i5-10210U CPU @ 1.60GHz Graphics Processor: Mesa DRI Intel® UHD Graphics
yikes What counts as a bunch? 50? 500? 5000?
Oh, I later counted, and it was 99 :)
I have noticed this problem on Wayland session of neon unstable.
Same here. I installed NeoChat yesterday to join Akademy, and not about 1000 messages. Today I looked in my notifications, and had only 0.3 or 0.1 FPS when scrolling, and deleting only the top-most notification froze my computer for about 10 seconds. After some time, I discovered that NeoChat created one notification for each of the 1000 messages, so that is probably why. Are notifications stored in a QVector or so, where deleting the first one 1000 times causes 500,000 memory reallocations or so? SOFTWARE/OS VERSIONS
SOFTWARE/OS VERSIONS Operating System: KDE neon 5.22 KDE Plasma Version: 5.22.1 KDE Frameworks Version: 5.83.0 Qt Version: 5.15.3 Kernel Version: 5.4.0-74-generic (64-bit) Graphics Platform: X11 Processors: 4 × Intel® Core™ i5-4300U CPU @ 1.90GHz Memory: 7.5 GiB of RAM Graphics Processor: Mesa DRI Intel® HD Graphics 4400
Can reproduce. ListView is of little use.
They are stored in a QVector, yes. However I believe the bottleneck to be the grouping proxy model
This has been fixed by Carl Schwan with https://invent.kde.org/plasma/plasma-workspace/-/commit/37bf7e5d73f03b258bd7bf57ae87d95f72fb2a59 in Plasma 5.24
The scrolling is still very slow on Wayland when I have many notifications from Spectacle in the history. Operating System: KDE neon Unstable Edition KDE Plasma Version: 5.25.80 KDE Frameworks Version: 5.95.0 Qt Version: 5.15.4 Graphics Platform: Wayland
reuseItems on ListView could help but that would need some refactoring since we have a Loader to decide between app section and notification and so it would still create/destroy a whole bunch of items as we scrolled
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2298
Should be fully fixed in Plasma 5.27.