Okay, so it turns out that the reason for these fallbacks is that some drivers implement certain Xrender operations incorrectly (see this thread for details: http://lists.cairographics.org/archives/cairo/2009-January/016320.html). One such case is the opensource radeon driver, the intel driver is apparently find (at least on i965). It's trivial to patch broken drivers to use a server-side software fallback instead, which doesn't cause nearly as much of performance hit as the client-side fallback that we would have right now. It'd be nice to get a few more data-points (especially from users of the closed-source ati and nvidia drivers, as we can't patch those).
A test that would be helpful to run is attached to the following mailing list post: http://lists.freedesktop.org/archives/xorg/2008-February/032973.html
For your convenience, I'm also attaching an i686 binary. Use 'chmod +x repeat-test_i686 && ./repeat-test_i686' to run it.
Okay, so it turns out that the reason for these fallbacks is that some drivers implement certain Xrender operations incorrectly (see this thread for details: http:// lists.cairograp hics.org/ archives/ cairo/2009- January/ 016320. html). One such case is the opensource radeon driver, the intel driver is apparently find (at least on i965). It's trivial to patch broken drivers to use a server-side software fallback instead, which doesn't cause nearly as much of performance hit as the client-side fallback that we would have right now. It'd be nice to get a few more data-points (especially from users of the closed-source ati and nvidia drivers, as we can't patch those).
A test that would be helpful to run is attached to the following mailing list post: lists.freedeskt op.org/ archives/ xorg/2008- February/ 032973. html
http://
For your convenience, I'm also attaching an i686 binary. Use 'chmod +x repeat-test_i686 && ./repeat-test_i686' to run it.