Bug 226719 - Drawing the scrollbars is slow with the style Oxygen
Summary: Drawing the scrollbars is slow with the style Oxygen
Status: RESOLVED WORKSFORME
Alias: None
Product: Oxygen
Classification: Plasma
Component: style (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Camilla Boemann
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-13 20:24 UTC by Benjamin Poulain
Modified: 2023-01-07 05:25 UTC (History)
3 users (show)

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


Attachments
Benchmark with testlib (1.14 KB, text/x-c++src)
2010-02-22 11:33 UTC, Benjamin Poulain
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Poulain 2010-02-13 20:24:01 UTC
Version:            (using KDE 4.3.2)
OS:                Linux
Installed from:    Ubuntu Packages

When running the QtWebKit benchmarks (http://trac.webkit.org/wiki/QtWebKitPerformanceUtilities ) with the style oxygen, the results are significantly slower than with other styles.

Running the benchmark with callgrind shows that the painting of the scrollbar is slower on Oxygen. For the scrolling benchmark, on the top50 websites, 27% of the time is spent painting the scrollbars.
The time spent painting the scrollbar with other themes is usually under 15%.
Comment 1 Hugo Pereira Da Costa 2010-02-14 14:28:08 UTC
I'll try optimize ... not sure I can do much about it though. Scrollbar painting in oxygen is more complex than most styles (due to backgrounds).

Could you uncheck the option "draw ScrollBar Bevel" in oxygen config dialog, scrollbar tab) ?
Comment 2 Hugo Pereira Da Costa 2010-02-14 14:29:03 UTC
(PS: could you also uncheck the "enable animations" in the first tab ?)
Comment 3 Hugo Pereira Da Costa 2010-02-14 14:46:38 UTC
As a matter of fact the scrollbar handle can be optimized a bit (meaning: cached into pixmaps (as done elsewhere in oxygen) which would likely speedup the painting. I'll give it a shot.
Comment 4 Hugo Pereira Da Costa 2010-02-22 05:14:48 UTC
ok. I tried caching pixmaps for painting the scrollbar handle. This results in even slower code ...
Comment 5 Benjamin Poulain 2010-02-22 11:33:42 UTC
Created attachment 41003 [details]
Benchmark with testlib

I have attached a benchmark so you can measure the improvements of your patches.

Here are the results for me:
RESULT : ScrollbarSpeedTest::renderingSpeed():"Oxygen":
     2,851 msec per iteration (total: 2851, iterations: 1)
RESULT : ScrollbarSpeedTest::renderingSpeed():"Windows":
     577 msec per iteration (total: 577, iterations: 1)
RESULT : ScrollbarSpeedTest::renderingSpeed():"Motif":
     191 msec per iteration (total: 191, iterations: 1)
RESULT : ScrollbarSpeedTest::renderingSpeed():"CDE":
     136 msec per iteration (total: 136, iterations: 1)
RESULT : ScrollbarSpeedTest::renderingSpeed():"Plastique":
     1,916 msec per iteration (total: 1916, iterations: 1)
RESULT : ScrollbarSpeedTest::renderingSpeed():"GTK+":
     515 msec per iteration (total: 515, iterations: 1)
RESULT : ScrollbarSpeedTest::renderingSpeed():"Cleanlooks":
     505 msec per iteration (total: 505, iterations: 1)
Comment 6 Hugo Pereira Da Costa 2010-05-10 16:46:33 UTC
SVN commit 1125026 by hpereiradacosta:

use _helper.viewFocusBrush() in place of kcolorscheme(...) every time it is possible, for optimization purposes.
Thanks to Allan Sandfeld Jensen for providing the original patch.
CCBUG: 226719


 M  +2 -2      oxygenframeshadow.h  
 M  +10 -10    oxygenstyle.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1125026
Comment 7 Hugo Pereira Da Costa 2010-05-10 17:09:49 UTC
SVN commit 1125038 by hpereiradacosta:

Backport r1125026
Use _helper.viewFocusBrush() in place of kcolorscheme(...) every time it is possible, for optimization 
purposes. Thanks to Allan Sandfeld Jensen for providing the original patch.
CCBUG: 226719


 M  +2 -2      oxygen.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1125038
Comment 8 Christoph Feck 2010-05-19 02:05:14 UTC
Benjamin, just to satisfy my curiosity: What result do you get with Skulpture style?
Comment 9 Benjamin Poulain 2010-05-21 10:58:32 UTC
@Christoph
The test case is attached on this bug, you can test the skulpture style with it.
Comment 10 Andrew Crouthamel 2018-11-02 23:00:53 UTC
Dear Bug Submitter,

This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond.

Thank you for helping us make KDE software even better for everyone!
Comment 11 Andrew Crouthamel 2018-11-16 05:23:00 UTC
Dear Bug Submitter,

This is a reminder that this bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version?

Thank you for helping us make KDE software even better for everyone!
Comment 12 Justin Zobel 2022-12-08 23:51:14 UTC
Thank you for reporting this issue in KDE software. As it has been a while since this issue was reported, can we please ask you to see if you can reproduce the issue with a recent software version?

If you can reproduce the issue, please change the status to "REPORTED" when replying. Thank you!
Comment 13 Bug Janitor Service 2022-12-23 05:22:58 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 14 Bug Janitor Service 2023-01-07 05:25:45 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!