I do compile all stuff on Solaris 10 (Sparc) myself. After compiling and installing cairo 1.8.10, firefox 3.0.18 feels extremely sluggish. The Xsun process (Solaris' X11 server) consumes lots of CPU cycles. I recompiled 1.8.8 and reverted to this version, then firefox runs normal again. Something's wrong with pixmap handling? Both version have been compiled using the same options: CC=cc CFLAGS="-O" ./configure --prefix=/export --enable-static=no
There's not a lot of difference between 1.8.8 and 1.8.10, and the most probable culprit for the slowdown looks to me like it might be: [xlib] DO_XCOPYAREA and DO_XTILE optimizations break with Window source http://cgit.freedesktop.org/cairo/commit/?h=1.8&id=c4cc2247813f26db79fc2c6aa789856569497613 If you could try reverting that patch and recompiling to see if it's causing your slowdowns that would be great.
I took the 1.8.10 sources, omitted both "src->owns_pixmap &&" from cairo-xlib-surface.c, recompiled and tested again - firefox runs fine with that. So not only Windows but Solaris as well is affected, at least on Sparc (afaik Solaris x86 uses the Xorg server that might behave differently).
I'm also affected by this bug, on linux 2.6.28, with a 1.3 GHz athlon. Please see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580175 . I can confirm that removing the first src->owns_pixmap change restores my performance. The second src_owns_pixmap test makes no difference for me.
This is unfortunate but that patch is a correctness fix as we cannot determine when using XCopyArea is actually going to leave blank areas where the source is clipped by children. This is an incorrect result. A patch to perform the intermediate blit instead of falling back would be appreciated. The alternatives are to do as Mozilla do and patch this out and ignore the consequences, somehow determine whether an external drawable is a pixmap or window on construction [this would be useful in any case], or fix your Xserver to support XRENDER. The last option will the biggest performance improvement.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/cairo/cairo/issues/273.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.