If anybody wanted to work around this problem (other than installing nouveau), I'd suggest looking in Cairo's _cairo_xlib_device_create() in src/cairo-xlib-display.c and ensure that display->buggy_gradients is set to TRUE. Setting it to TRUE unconditionally will cause slowdowns on all drivers, so detecting the nvidia binary driver sounds like a good idea. I've been told by the Xorg developers that checking for the availablility of the NV-CONTROL extension works for that.
I'm not sure I'd want that patch upstream as it isn't a reliable check, but as a Maverick-specifc Ubuntu patch, it certainly makes sense.
As I said in the linked GNOME bug:
It's a bug in the nvidia driver.
If anybody wanted to work around this problem (other than installing nouveau), I'd suggest looking in Cairo's _cairo_ xlib_device_ create( ) in src/cairo- xlib-display. c and ensure that display- >buggy_ gradients is set to TRUE. Setting it to TRUE unconditionally will cause slowdowns on all drivers, so detecting the nvidia binary driver sounds like a good idea. I've been told by the Xorg developers that checking for the availablility of the NV-CONTROL extension works for that.
I'm not sure I'd want that patch upstream as it isn't a reliable check, but as a Maverick-specifc Ubuntu patch, it certainly makes sense.