[plasmashell] [Bug 356479] plasmashell uses 100% CPU when there is an animation in the task bar

2016-10-13 Thread Lindsay Roberts via KDE Bugzilla
https://bugs.kde.org/show_bug.cgi?id=356479

Lindsay Roberts  changed:

   What|Removed |Added

 Status|CONFIRMED   |RESOLVED
 Resolution|--- |FIXED

--- Comment #92 from Lindsay Roberts  ---
Am marking this bug resolved - it's scope being as David mentioned above,
systray related CPU usage.

High CPU usage when copying files via Dolphin with task status is still a
problem; suggest we track that in the existing specific item
https://bugs.kde.org/show_bug.cgi?id=312919 . Doesn't seem to be the same as
issue (2) mentioned above, perf shows lots of dbus.

-- 
You are receiving this mail because:
You are watching all bug changes.


[plasmashell] [Bug 356479] plasmashell uses 100% CPU when there is an animation in the task bar

2016-10-10 Thread Lindsay Roberts via KDE Bugzilla
https://bugs.kde.org/show_bug.cgi?id=356479

--- Comment #91 from Lindsay Roberts  ---
For all those playing at home, the change in https://phabricator.kde.org/D2986
has now been committed. This makes the changes I suggested above as well as
completely removing the code identified in the perf traces.

Anyone willing to test master to help confirm the fix and it's lack of side
effects is extremely welcome.

-- 
You are receiving this mail because:
You are watching all bug changes.


[frameworks-plasma] [Bug 301841] Plasma tooltip popups block user interface

2016-10-08 Thread Lindsay Roberts via KDE Bugzilla
https://bugs.kde.org/show_bug.cgi?id=301841

Lindsay Roberts  changed:

   What|Removed |Added

 CC||lind...@gmail.com
 Resolution|--- |FIXED
 Status|CONFIRMED   |RESOLVED

--- Comment #8 from Lindsay Roberts  ---
Closing as RESOLVED:FIXED - confirmed Igor's findings from 5.4 - tooltips
disappear almost instantly on mouseover.

-- 
You are receiving this mail because:
You are watching all bug changes.


[plasmashell] [Bug 356479] plasmashell uses 100% CPU when there is an animation in the task bar

2016-10-06 Thread Lindsay Roberts via KDE Bugzilla
https://bugs.kde.org/show_bug.cgi?id=356479

--- Comment #89 from Lindsay Roberts  ---
The file is
/usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/items/StatusNotifierItem.qml
locally. If you try this, let us know if you see the same icons before and
after or any other changes. Can't guarantee this doesn't produce some kind of
huge regression.

These are the changes I made:

Line 31:
//icon: ToolTipIcon != "" ? ToolTipIcon :
plasmoid.nativeInterface.resolveIcon(IconName != "" ? IconName : Icon,
IconThemePath)
icon: ToolTipIcon != "" ? ToolTipIcon : Icon ? Icon :
plasmoid.nativeInterface.resolveIcon(IconName, IconThemePath)

Line 51:
//source: plasmoid.nativeInterface.resolveIcon(IconName != "" ?
IconName : Icon, IconThemePath)
source: Icon ? Icon : plasmoid.nativeInterface.resolveIcon(IconName,
IconThemePath)

-- 
You are receiving this mail because:
You are watching all bug changes.


[plasmashell] [Bug 356479] plasmashell uses 100% CPU when there is an animation in the task bar

2016-10-06 Thread Lindsay Roberts via KDE Bugzilla
https://bugs.kde.org/show_bug.cgi?id=356479

Lindsay Roberts  changed:

   What|Removed |Added

 CC||lind...@gmail.com

--- Comment #87 from Lindsay Roberts  ---
Confirmed Fabian's cause locally using perf/timers.

It seems even worse than thought - in addition to legion allocations, it also
iterates through the filesystem during KIconTheme construction, disk waits and
IO on top of the visible CPU usage.

A trivial test program did also turn up one more interesting bit about the
problem; every time any icon in the systray changes - including a native
KStatusNotifier based icon - all icons are refreshed, and this includes calling
resolveIcon, and heap allocating KIconLoader/KIconTheme and it's associated
fileystem iteration. Not only that, but the system tray QML references the icon
(and resolveIcon) twice, so all this happens twice per affected icon, every
time any icon changes. To salt that quite open wound, this includes icons
hidden inside the expansion area, and in no plausible scenario needing
immediate repaint.

It is clear that KIconLoader is far too heavy to be constructed as part of any
interactive or continuous operation. Without having spent too long in the code,
the right place for any kind of cached per-application/per-icon data would seem
to be in the statusnotifieritem datasource. And it seems that class actually
has code for tracking a custom KIconLoader, resolving icons, and even sending
them. It's possible that the code in resolveIcon is redundant, and is being
used only because the QML prefers using the icon name to the QIcon() passed
along:

source: plasmoid.nativeInterface.resolveIcon(IconName != "" ? IconName
: Icon, IconThemePath)

Prefixing a preference for the provided icon before delving into resolveIcon
(Icon ? Icon : ...)  got rid of all significant CPU usage on my machine aside
from the QML scene graph and the graphics drivers. Would require someone more
knowledgeable in this area and/or significant testing to confirm this wouldn't
produce any negative behaviour, however.

Even with the above, we seem to be doing too much repainting due to small
changes here, I haven't delved in enough to attempt to discover where and why
the repaints are occurring.

-- 
You are receiving this mail because:
You are watching all bug changes.