
Some Nvidia graphics cards suffer from a bug called the “Black Window Bug” when running Compiz (the Linux 3D desktop). The Nvidia drivers will stop rendering windows after a certain memory limit has been reached. This is a known Nvidia driver bug and has been fixed but did not make it into the Ubuntu Gutsy 7.10 release. Fortunately, there is a fairly simple fix.
BWB Fix
- Download the fixed file and use Archive Manager to unzip the file to your desktop.
- Open a terminal (Applications->Accessories->Terminal).
- Back up the broken file by entering the following command into the terminal (without the ‘$’). No output should show:
$ cp /usr/bin/compiz ~/Desktop/compiz.back
- Replace the broken file by entering the following command into the terminal (without the ‘$’). You should have to enter your password after entering the command for the command to run. No output should show besides the password prompt:
$ sudo cp ~/Desktop/compiz-manager/compiz-manager /usr/bin/compiz
- Enable the fix by entering the following command into the terminal (without the ‘$’). No output should show:
$ echo "INDIRECT=yes" > ~/.config/compiz/compiz-manager
- Close all your programs and restart X by hitting
Ctrl + Alt + Backspace.
Reverting “the Fix”
When the fixed version of the Nvidia drivers are packaged into the next release of Ubuntu, to undo this “fix,” simply remove the .config/compiz/compiz-manager file. Other fixes for this problem do exists, though I feel they are harder and more risky.
More “Fix” Details
There are two things causing the BWB. The first is that indirect rendering needs to be enabled to work around the Nvidia driver bug. That’s what the “$ echo “INDIRECT=yes” > [...]” command does. The second problem is that compiz has a bug where it doesn’t read the setting that the former line is intended to direct. The file I’ve linked too is an official development version of the file that takes care of reading the indirect rendering setting.
- None Found