Comment 58 for bug 655024

Revision history for this message
veldt (veldt) wrote : Re: [Bug 655024] Re: Using higher cpu usage 20)

Hi Andrea! This is about rendering cairo shadowed text to a temporary
image surface that we talked about a few months ago. cairo's M Joonas
Pihlaja still wants a screenshot of the test you did in this post:
https://bugs.launchpad.net/libcairo/+bug/655024/comments/45

I'm hardly a GUI expert, so my e-mail to you in November may be meaningless:

--- begin excerpt ---
You can hold off on that screenshot if you want. But I'd rather you
didn't. I've determined that gtk+ or compiz or the darn app is calling
for redisplay at least once every 0.3 seconds. Totally unnecessary, I'd
say, but who am I to judge?

Granted, it's only 3 torrents and their cells per second, out of 35. But
it should be 0. If they're paused and non-dynamic.

If there is no alternative, I will talk to canonical about linking an
earlier cairo to transmission-gtk. Your theme should be fine. As it
already is
--- end ---

I retrofitted libcairo 1.8 onto my system and that did not fix the
problem -- CPU usage went up more than 400% displaying paused torrents
in transmission-gtk. As you may recall, these are rendered with the gtk
property "sensitive" = FALSE, which murrine draws shadowed. So going to
an earlier libcairo didn't help.

This dramatic slowdown only seems to have started with October's ubuntu
Maverick, despite the fact that I believe your theme has been the
default since April's Lucid.

In
https://bugs.launchpad.net/libcairo/+bug/655024/comments/55
one of the gui developers of transmission-gtk expressed interest in
getting his app working nicely in the next ubuntu release. I posted a
silly mini-patch in comment 57 which turns off the slow non-sensitive
rendering, but since I am not a GUI developer, I just put in an xpad
offset for paused elements instead of non-sensitive, and this makes them
"shimmer" when you mouse over them. It's not a fix, but it eliminates
the slowdown as a "proof of concept." Is there a way you can make an
exception in your theme for "transmission-gtk" to render non-sensitive
elements bold and lighter? That would look similar to the shadowed
rendering I see now, and I hope it would be faster.

As I said, there is always a chance the transmission-gtk guy will look
at some other way than non-sensitive to render paused elements, but
please let me know how you feel about all this.

Thanks for your work!

- veldt