Comment 83 for bug 861268

Revision history for this message
Margarita Manterola (marga-9) wrote :

Hi,

In our team, we've been doing some testing through the plugin that shows compiz redraws. The main result that our testing got was that compiz *is redrawing* the window when the bug occurs. This means that compiz is getting the "redraw" signal correctly, but when it redraws, the buffer still contains the old or partially old content. Doing any change in the environment but not the content, like moving the window affected, triggers another redraw and this time with the right content.

We also found that unaffected programs, like terminator or konsole, do more redraws. So it's possible that the first redraw is corrupted (it flashes way too fast to tell) but then the second one is not corrupted.

Current working hypothesis:
Certain programs (gnome-terminal, gvim, xterm) when being used in a compositing environment send the "please redraw" signal before they have finished drawing to their buffer and so the compositing window manager draws a partially/totally corrupted screen.

We've found that we can reproduce this bug with 1 or 2 monitors, running under several different environments (unity, gnome, cinnamon), in our case always with nVidia cards.

When using Unity, the current workaround is to enable "Force full screen redraws (buffer swap) on repaint" through ccsm. When using cinnamon we've tried the workaround listed in the previous post (CLUTTER_PAINT=disable-clipped-redraws:disable-culling <command>) helps but doesn't solve it 100%.