The Firefox 3.0a with cairo is slow on Solaris Nevada SPARC. With x86, it works well. Both the Mozilla community cairo and the cairo library 1.4.2 have the same problem. Following are some basic investigation on this issue: I used Sun Studio 11's "collect" and "analyzer" tools to get the time profile information. The test case is quite simple as the low performance is obvious. I did some basic operations(which includes making several empty tabs and switching amongst different tabs). The result shows that function "pixman_fill_rect_32bpp" spends 8% of the whole Firefox life time. To dig further, there seems to be a loop function call between _cairo_surface_fallback_fill_rectangles and _cairo_surface_fill_rectangles for many time. And that's where the time goes. I'm not familiar with the cairo code itself. Any clue on this to get further information?
Hmm, this is reminiscent of: commit f90b155b5a59211bed7502b537dbf207b3d4bf5e Author: Behdad Esfahbod <behdad@behdad.org> Date: Tue May 27 04:41:03 2008 -0400 [cairo-xlib] Delay using fallback if xrender is not available So we can use XCopyArea when Render is not available. Based on patch by Ginn Chen. and commit 07fef4f4802639a2cb16284841635d1bcc9b8e8f Author: Ginn Chen <ginn.chen@sun.com> Date: Tue May 27 04:44:08 2008 -0400 [cairo-xlib] Implement _cairo_xlib_surface_solid_fill_rectangles() (#11529) which address the issue of falling back to pixman when the Xserver doesn't support the required XRender operation. One of the tools you can use to identity performance cases is cairo-trace which records all the cairo calls made an application and allows one to inspect and replay it at will.
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.