Summary: | Performance stagger in animation and rendering when hovering over grouped Icons-Only Task Manager; given that the grouped windows contain more than 3-5 windows. | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | Quartz <thomwalker732> |
Component: | Task Manager and Icons-Only Task Manager | Assignee: | Eike Hein <hein> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | aleixpol, bharadwaj.raju777, bugs-kde, nate, plasma-bugs, qydwhotmail, vlad.zahorodnii |
Priority: | NOR | Keywords: | efficiency, usability, wayland |
Version: | master | ||
Target Milestone: | 1.0 | ||
Platform: | Manjaro | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=433907 | ||
Latest Commit: | Version Fixed In: | 5.24 | |
Sentry Crash Report: | |||
Attachments: |
Task.qml
ToolTipDelegate.qml ToolTipInstance.qml ToolTipDelegate.qml ToolTipDelegate.qml ToolTipDelegate.qml |
Description
Quartz
2021-10-18 22:18:36 UTC
Workflow, especially with multiple windows gets slowed down and gives overall poor usability and experience. Machine is not thrashing or under performance load for this to occur. It occurs under normal circumstances. ****** This issue also occurs on the Task Manager (not just the icons only widget) taskbar widget when items are grouped. What happens if you do enable the compositor? Does that improve or worsen this? The animation was made by Macro Martin according to "Desktop Effects" settings. But I think it's not about the animation, but scripts in ToolTipInstance.qml are likely to take a long time to execute if there are many windows in a group. That's another reason why we need https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/609, to really disable tooltips to avoid the unresponsiveness caused by tooltips. Git commit 80928f4344af159f58e61225a02ea7a874cb5493 by Nate Graham, on behalf of Fushan Wen. Committed on 20/10/2021 at 16:56. Pushed by ngraham into branch 'master'. taskmanager: Ensure tooltips are really disabled when "Show tooltips" is unchecked Before frameworks/plasma-framework!358, if enabled is not set (default true), when the tooltip is disabled in the settings, plasmashell will still crash at showing window thumbnails, which means the content in the tooltip is just not visible, but the relevant code is still executed. This ensures tooltips are really disabled when "Show tooltips" is not checked, which is beneficial for people who want to extend the battery life or avoid the unresponsiveness caused by tooltips. Related: bug 444015 M +2 -1 applets/taskmanager/package/contents/ui/Task.qml https://invent.kde.org/plasma/plasma-desktop/commit/80928f4344af159f58e61225a02ea7a874cb5493 A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/622 Git commit 12373d31a0400bf5d4b7d6abdb29268c360156bf by Fushan Wen. Committed on 21/10/2021 at 09:10. Pushed by ngraham into branch 'master'. taskmanager: Prevent useless component creation/destruction for grouped tooltips The binding of "model" property of DelegateModel in ToolTipDelegate.qml will trigger useless component creation/destruction when "rootIndex" is changed but is not undefined. Make the ternary operator depend on "hasRootIndex" bool property to avoid that. In Task.qml, only assign different values to "parentTask" and "rootIndex" to avoid unnecessary component creation/destruction for the second time hovering on the same task. Related: bug 433907 M +10 -2 applets/taskmanager/package/contents/ui/Task.qml M +4 -1 applets/taskmanager/package/contents/ui/ToolTipDelegate.qml https://invent.kde.org/plasma/plasma-desktop/commit/12373d31a0400bf5d4b7d6abdb29268c360156bf Git commit 2f27fc9f05462076a77254c0df17fa07ee8228a8 by Nate Graham, on behalf of Fushan Wen. Committed on 21/10/2021 at 15:47. Pushed by ngraham into branch 'Plasma/5.23'. taskmanager: Prevent useless component creation/destruction for grouped tooltips The binding of "model" property of DelegateModel in ToolTipDelegate.qml will trigger useless component creation/destruction when "rootIndex" is changed but is not undefined. Make the ternary operator depend on "hasRootIndex" bool property to avoid that. In Task.qml, only assign different values to "parentTask" and "rootIndex" to avoid unnecessary component creation/destruction for the second time hovering on the same task. Related: bug 433907 (cherry picked from commit 12373d31a0400bf5d4b7d6abdb29268c360156bf) M +10 -2 applets/taskmanager/package/contents/ui/Task.qml M +4 -1 applets/taskmanager/package/contents/ui/ToolTipDelegate.qml https://invent.kde.org/plasma/plasma-desktop/commit/2f27fc9f05462076a77254c0df17fa07ee8228a8 A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/631 Created attachment 142819 [details]
Task.qml
Created attachment 142820 [details] ToolTipDelegate.qml The bug seems different from bug 433907, because on a 1080p screen a tooltip can show up to 7 windows. But it says when a tooltip contains more than 3-5 windows the performance starts staggering. Could you help me test https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/631 ? I have uploaded patched Task.qml and ToolTipDelegate.qml, so after you download the two files, copy them into /usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/ (or if Task.qml and ToolTipDelegate.qml do not exist in the folder, run `find /usr -name ToolTipDelegate.qml` to locate the folder) and run `plasmashell --replace` to see if the bug is fixed. Thank you in advance. Change the status to NEEDSINFO Created attachment 142821 [details]
ToolTipInstance.qml
If the bug is not fixed by the two files, please also copy ToolTipInstance.qml to the same folder to test again.
Created attachment 142839 [details]
ToolTipDelegate.qml
Update ToolTipDelegate.qml, please use the latest version.
Created attachment 142843 [details]
ToolTipDelegate.qml
Update again
Created attachment 142844 [details]
ToolTipDelegate.qml
I can reproduce the bug on Wayland even with these files. Are you using Wayland? Please also try X11 to see if the bug still persist. The problem is in PipeWireThumbnail.qml and its library. Should ScreencastingRequest::create run in a new thread? Can the tooltip use KWinComponents.WindowThumbnailItem? It seems much faster than PipeWireThumbnail. Git commit b63a6c9b16f261ecac99e5d1abbd72c52349cb95 by Nate Graham, on behalf of Fushan Wen. Committed on 26/10/2021 at 19:15. Pushed by ngraham into branch 'master'. taskmanager: Replace Repeater with ListView for task group list Unlike Repeater ListView loads only visible items. This behaviour leads to huge performance improvement. Related: bug 433907 M +2 -14 applets/taskmanager/package/contents/ui/Task.qml M +30 -33 applets/taskmanager/package/contents/ui/ToolTipDelegate.qml https://invent.kde.org/plasma/plasma-desktop/commit/b63a6c9b16f261ecac99e5d1abbd72c52349cb95 (In reply to qydwhotmail from comment #20) > Can the tooltip use KWinComponents.WindowThumbnailItem? It seems much faster > than PipeWireThumbnail. Huh, a shot in the dark: it's because window thumbnails are not shared using dma-buf anymore due to recent pipewire shenanigans. Should be pretty much fixed now with those changes. *** Bug 429502 has been marked as a duplicate of this bug. *** |