Okay, I dug a little deeper and it turns out firefox uses cairo for rendering and cairo will use client-side rendering because it thinks the X server doesn't support EXTEND_PAD. My testing suggests that XRender does support it, though (at least since hardy). So the solution to the performance issues outlined above is to patch cairo to not claim EXTEND_PAD is unsupported by XRender. Jaunty packages are in my PPA:
Okay, I dug a little deeper and it turns out firefox uses cairo for rendering and cairo will use client-side rendering because it thinks the X server doesn't support EXTEND_PAD. My testing suggests that XRender does support it, though (at least since hardy). So the solution to the performance issues outlined above is to patch cairo to not claim EXTEND_PAD is unsupported by XRender. Jaunty packages are in my PPA:
http:// ppa.launchpad. net/thjaeger/ ubuntu/ pool/main/ c/cairo/