Bug 493376 - Selecting many .desktop files on the desktop causes extreme lag
Summary: Selecting many .desktop files on the desktop causes extreme lag
Status: REOPENED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Desktop icons & Folder View widget (show other bugs)
Version: 6.1.5
Platform: Manjaro Linux
: NOR minor
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-09-19 17:52 UTC by alt
Modified: 2025-02-20 16:42 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Video of the desktop lagging (2.90 MB, video/webm)
2024-09-21 00:27 UTC, alt
Details

Note You need to log in before you can comment on or make changes to this bug.
Description alt 2024-09-19 17:52:21 UTC
SUMMARY
Quickly selecting/deselecting multiple .desktop files on the desktop using the selection rectangle causes lag and throttling, especially if at least 10 (the minimum number may vary) are being selected in a row or column.

STEPS TO REPRODUCE
1. Add at least 10 different .desktop files (symlinks) from the application launcher by right-clicking on an each app and selecting "Add to Desktop".
2. Align all the files in one or multiple rows/columns on the desktop.
3. Hold the left mouse button and quickly move the cursor until they are all selected, then quickly move it backwards while still holding the button to deselect them one by one.
4. Repeat the previous point multiple times to cause lag.

OBSERVED RESULT
You should notice visible lag.
I also get this message from the system log: "systemd[1]: Looping too fast. Throttling execution a little."

EXPECTED RESULT
There should be no lag at all.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: 
KDE Plasma Version: 6.1.5
KDE Frameworks Version: 6.5.0
Qt Version: 6.7.2
Kernel Version: 6.9.12-3-MANJARO (64-bit)
Graphics Platform: Wayland

ADDITIONAL INFORMATION

I'm using a hybrid graphics laptop (Intel + Nvidia).

Operating System: Manjaro Linux 
Processors: 12 × 13th Gen Intel® Core™ i5-13420H
Memory: 15,3 GiB of RAM
Graphics Processor: Mesa Intel® Graphics
Comment 1 alt 2024-09-19 17:56:25 UTC
This issue may be related to https://bugs.kde.org/show_bug.cgi?id=489894
Comment 2 alt 2024-09-19 18:07:53 UTC
(In reply to alt from comment #1)
> This issue may be related to https://bugs.kde.org/show_bug.cgi?id=489894

I was able to reproduce this bug too
Comment 3 Nate Graham 2024-09-19 18:54:31 UTC
Do any of the apps have large images set as their icons? If so, this is probably another manifestation of Bug 489894.
Comment 4 alt 2024-09-20 00:11:40 UTC
No, they are just ordinary icons, less than 100 kB
Comment 5 Nate Graham 2024-09-20 16:48:16 UTC
Hmm, OK. I can't reproduce it, unfortunately.
Comment 6 alt 2024-09-20 23:57:27 UTC
(In reply to Nate Graham from comment #5)
> Hmm, OK. I can't reproduce it, unfortunately.

I was able to reproduce it on a live USB of Manjaro, but I had to switch to a Wayland session because this issue doesn't happen with X11. I'll add a video as an attachment.
Comment 7 alt 2024-09-21 00:27:45 UTC
Created attachment 173927 [details]
Video of the desktop lagging
Comment 8 Nate Graham 2024-11-05 17:44:51 UTC
Does it still happen in Plasma 6.2?
Comment 9 alt 2024-11-08 08:46:18 UTC
(In reply to Nate Graham from comment #8)
> Does it still happen in Plasma 6.2?

Yes, still there
Comment 10 Nate Graham 2024-11-12 18:10:41 UTC
Can reproduce with over 100 icons on my system. Probably the threshold at which it starts to happen is dependent on the hardware, and maybe secondarily the contents or mimetypes of the icons.

Should be fixed with https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/2628.
Comment 11 Akseli Lahtinen 2024-11-13 12:51:17 UTC
Git commit f7a92f7e65ac09cfd82a01835ac9f955c1b25744 by Akseli Lahtinen.
Committed on 13/11/2024 at 12:51.
Pushed by akselmo into branch 'master'.

FolderView: Performance improvements for selections

This MR has multiple changes, especially related to the "rubberband" (selection rectangle).

- Use `Qt.callLater` for `gridView.rectangleSelect` to eliminate redundant calls.
  - This was previously called *every time mouse moved one pixel*
- Clear a redundant mapToItem
  - `var cPos = mapToItem(gridView.contentItem, mouse.x, mouse.y);` needs to be only called during rubberband action
- Update dragItem images after selection is done, instead of every time a delegate is selected
- Instead of creating and destroying `selectionButton` in `FolderItemDelegate`, create it once and toggle its visibility


These all should help with the performance related to selecting multiple icons by dragging the selectiong rectangle around them.

M  +13   -17   containments/desktop/package/contents/ui/FolderItemDelegate.qml
M  +26   -9    containments/desktop/package/contents/ui/FolderView.qml
M  +5    -0    containments/desktop/plugins/folder/foldermodel.cpp
M  +1    -0    containments/desktop/plugins/folder/foldermodel.h

https://invent.kde.org/plasma/plasma-desktop/-/commit/f7a92f7e65ac09cfd82a01835ac9f955c1b25744
Comment 12 agarplayerarlon 2025-02-13 13:40:29 UTC
hey, this bug is still present in Plasma 6.3
Comment 13 Nate Graham 2025-02-13 15:11:34 UTC
In that case, it's actually Bug 469445. You can fix it yourself by deleting the `ScreenMapping` section in your `~/.config/plasma-org.kde.plasma.desktop-appletsrc` file and let it get regenerated naturally.

*** This bug has been marked as a duplicate of bug 469445 ***
Comment 14 alt 2025-02-13 17:18:00 UTC
I don't think this is a duplicate of bug 469445, as I have deleted the ScreenMapping section of  ~/.config/plasma-org.kde.plasma.desktop-appletsrc and the issue still persists (plus, I never had crashes, nor other slowdowns except this specific one). Moreover, as I pointed out previously in a comment, this bug doesn't happen while using X11, but only while using Wayland. So I think that this is a clear indicator that it must be something related exclusively to the Wayland-specific implementation.
Comment 15 TraceyC 2025-02-13 17:57:28 UTC
Re-opening since the issue is still occurring in 6.3.0, even after the workaround

FWIW I can't replicate this on git-master or 6.3.0 but as Nate said, it might be hardware dependent, using about 30 .desktop shortcuts