Compiz stuttering gone

Ever since I built my last desktop computer, I had problems with the Compiz-powered visual effects in Linux.  They mostly worked fine, but every effect would start with a few fluid frames, completely pause for a noticeable fraction, then complete the animation.  This was particularly distracting when switching virtual desktops with the cube plugin.  I think it all started with my then-new Athlon64 X2 6000 @ 3GHz.  I was (and still am) running dual Nvidia 8800GTs, I had plenty of RAM, but nothing would get rid of this stuttering problem.

Before you tell me to "just turn desktop effects off," let me say that I find non-wobbly windows even more jarring than stuttering desktop switching, and the other desktop effects I have just make things flow a lot better.  Even without effects, the same rendering engine is used to build normal GUI windows, so this problem affects necessities as well as luxuries.  Plus, I don't know if I'm actually more productive, but I enjoy my work a lot better with effects enabled.

I reached the point where I thought I couldn't take it anymore.  I recompiled my kernel, switched to the BFS scheduler (which significantly improves perceived interactivity of applications like the Gnome Terminal), and eventually completely upgraded my system, but to no avail.  So now I'm running a Core i7 920 @ 2.6GHz, 6GB RAM, and still dual 8800GTs, but I was still getting slow framerates and this awful pause when I switched desktops.

Then, a few weeks ago, something happened.  I'm still not completely sure why, but the stuttering stopped.  I no longer see annoying pauses when rotating the desktop cube, and all the other animations (the windows beaming in, burning out, and wobbling across the screen) seem to be running at a million frames per second.  If you've read my previous blog posts, you'll know that I don't like it when things fix themselves.  I have to know why.

The only thing I remember changing at the time was my xorg.conf.  I've narrowed it down to disabling dynamic TwinView.  Re-enabling dynamic TwinView resulted in noticeable jerkiness and tearing, but didn't cause the desktop switch stuttering to come back.  That must've been solved by an update to the Nvidia drivers, X, or Compiz.   So, if you have an Nvidia card (especially if you have two) and your desktop doesn't seem to be as fluid as you'd like, try upgrading to the latest beta drivers and making your "Device" section in /etc/X11/xorg.conf look like this:
Section "Device"
        Identifier "nvidia"
        Driver  "nvidia"
        Option  "DynamicTwinView"     "false"
EndSection

I think you'll be glad you did.