KDE4's performance on newer NVIDIA cards of the 8xxx and 9xxx series is currently pretty choppy. For as long as I've been trying running KDE4 I had to fight an unresponsive plasma and some windows that just wouldn't resize with more than 0.5 fps.
Lately I've been reading up on a thread on the NVIDIA forums. I found out that performance can be increased dramatically by doing the following:
- Install the latest NVIDIA graphics driver (173.14.09 works fine for me)
- Make sure you the NVIDIA kernel module gets loaded by either rebooting or rmmod/modprobe (Of course you'll also have to restart xorg)
- Set the following options:
$ nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1
If you're lucky your KDE4 will be snappier than ever. If you're unlucky and it stays the same or gets even worse, try experimenting with the value of InitialPixmapPlacement, setting it to 1 or 3.
Apart from that I had to play around with the Advanced Effects settings as kwin's performance seemed to have dropped.
Making it permanent
Driver options set using the nvidia-settings tool reset back to default as soon as your xserver exits. To make it permanent you have to put this command
nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1 &
in your autostart.
Additionally, you can try the following options in your xorg.conf, in the device section (nvidia):
Option "RenderAccel" "true" Option "UseEvents" "false" Option "TripleBuffer" "1" Option "DamageEvents" "1" Option "BackingStore" "1" Option "PixmapCacheSize" "70000" Option "OnDemandVBlankInterrupts" "true"
They should speed up things as well, be careful with BackingStore though, it might be possible that kwin will crash for you, see "Known Problems" below. You might want to try other, higher values for PixmapCacheSize.
After making the above changes, you can use the Canvas speed test benchmark below to test and see if it did affect performance. Run the Canvas test with InitialPixmapPlacement=1 and InitialPixmapPlacement=2 to see the difference in time taken. (Note: It may not work with Konqueror, try using Firefox 3)
Canvas can also be tested at http://blobsallad.se/
Here I'd like to collect some information about the circumstances this setup will work better in. Please post your experiences to the table below:
|256.35||default||default||Amazing difference with the xorg parameters you listed! Everything goes at 60fps, including HD video and Blender with a 5 million polygons model in sculpt mode. Before this tweaks there was a huge difference, fps used to drop down to 30 fps or less, even just buy starting cairo dock with opengl fx.|
|Lemma||8600 GTS||2.6.25||177.13 (beta)||2||1||huge|
|Lemma||8600 GTS||2.6.25||173.14.09 (stable)||2||1||huge|
|Teo||Quadro NVS 140M (same chip as 8400M)||2.6.25||177.78 (beta)||2||1||the improvement is significantly more noticeable than with stable drivers but still not enough for normal use|
|Teo||GeForce 8800GT||2.6.25||177.70 (beta)||2||1||huge, KDE4 is completely usable now, both Plasma and KWin effects|
|Brandon||8800GTS 640mb||2.6.26||173.14.09 (stable)||2||1||huge(not a lot when resizing windows but scrolling in the folderview is smooth now)|
|friedreich||8800GTS 640mb||184.108.40.206-2-pae||173.14.09 (stable)||2||1||huge (after playing with advanced compositing options absolutely smooth (opengl, texture from pixmap, trilinear, direct rendering), keep thumbnails of hidden windows), still dogslow when adding widgets and doing animations the 1st time, putting the lines into xorg.conf doesn't work|
|Johannes Köster||Geforce 8600GT||2.6.25-debian||173.14.09||2||1||rather big, but only if I use shared memory as opengl mode. texture from pixmap causes long hangs every few minutes.|
|Armando Jagucki||Geforce 8800GT||2.6.24||173.14.09||2||1||Huge. Scrolling in folder views does not lag anymore, and the desktop switching window-shuffle animation is silky smooth whereas before it would hiccup.|
|rivo||9600GT||2.6.22 (Gutsy)||173.14.09||2||1||huge. Plasma is now actually usable (was very painful before). KWin is also very smooth now.|
|Nikolavp||8500 GT||2.6.25-2||173.14.09-3||2||1||Huge difference, saved my day.|
|zulu9||8500 GT||2.6.26-2.slh.6-sidux-686||177.67||2||1||Huge! No kwin hangups anymore (like with 173.xx). Runs nicely with effects enabled. I also followed the instructions on the nvidia-forums .|
|Xmister||8600 GTS||2.6.24-20||169.12||2||0||It runs much better with this driver, IPP helps a lot for this too.|
|Fuchs||nvs140m (G8400M)||2.6.26||173.14.12 and 173.14.05 and 177 beta (same results)||2||1||Not that much of a difference, as 2D was already good with the xorg.conf options listed above. A nVidia employee recently wrote that the XRender / KDE4 issues are being addressed right now and should be fixed in the 177 final release. Please be patient.|
|padde||GeForce 8400M GT||2.6.26 (Gentoo/64)||177.13||2||1||Window resizing is finally possible. Scrolling still choppy, but much better (you wouldn't believe how much it sucked before)...|
|Pingus||GeForce 9500M GS||220.127.116.11||173.14.09_18.104.22.168_1.1-0.1||2||1||Huge.|
|Ghirai||GeForce 8600 GT||FreeBSD 7.0-RELEASE, i386||173.14.12||2||1||Fixed the resizing issue, scrolling in folders is a lot more smoother. However, every once in a while, minimizing/maximizing grinds to a total halt (framerate drops to 0); after couple seconds, everything is back to normal. Apart from this big annoyance, everything is perfect (framerate stays between 40 and 60 no matter what i do).|
|tex||GeForce 9600 GT||22.214.171.124 x86_64||177.67 (x86_64)||2||1||Huge. Please note that I'm running an TwinView Setup (2 DFP).|
|Ingar||GeForce 8800 GTS 640mb||2.6.26-ARCH x86_64||173.14.12 (x86_64)||2||1||Huge. Desktop switching, scrolling and konsole work smooth.|
|Christian||Quadro NVS 140M||2.6.28 (Arch Linux)||180.22-1||1||1||For me it was adding "options nvidia NVreg_RegistryDwords="PerfLevelSrc=0x2222"" "options nvidia NVreg_Mobile=1" to /etc/modprobe.conf which did the trick. It sets the powerlevel of the card to always 2.|
|vanRijn||Quadro NVS 140M (rev a1)||126.96.36.199-0.1-pae (OpenSUSE 11)||177.78||1||1||Finally! I can actually use KDE4! Note that IPP=2 is MUCH worse for me than IPP=1.|
|Darjus||GeForce 7600 GT 256 MB||188.8.131.52-0.2-default x86_64||177.80 (x86_64)||2||1||Upgrading to 177.80 did nothing to me. Only setting the InitialPixmapPlacement=2 made konsole resize normally. So 177.80 is not a fix, or maybe not for my card?|
|Tictacbum||GeForce 7600 GS 256 MB||2.6.26-2-686 x86||180.60 (x86)||2||1||Still having konsole resize issue with 180.60 version. Setting the InitialPixmapPlacement=2 solves that.|
|ka7ana||geForce 8800 GT||2.6.27-7-generic (Kubuntu Ibex 8.10)||177.80 (x86)||2||1||Noticed major slowdown on the 177.80 driver. After running the nvida-settings command, noticed major improvements all round. Previously was experiencing slowdown on switching apps etc (CTRL+F10 and the like) and the folder view plasmoid was very near unusable. Updated settings had drastically improved performance.|
|Henk||geForce 8800 GT||2.6.27-r2 (Gentoo)||177.70 (x86)||3||1||Also noticed a slowdown with IPP=2 on the 177.80. IPP=2 SVG/Canvas=18/4 seconds, IPP=3 SVG/Canvas=2/5; GC 0/1 has no effect. In kde4.1.3 desktop effects are greyed out.|
|Henk||geForce 8800 GT||2.6.27-r2 (Gentoo)||180.08 (x86)||2||1||Much much better with IPP=2, SVG/Canvas=2/1; GC 0/1 has no effect. In kde4.1.3 desktop effects are still greyed out.|
|Rubén Torrero||geForce 8600 GT||2.6.27-ARCH||180.08 (x86_64)||N/A||N/A||KDE4 is perfectly usable now. Didn't set any IPP or GC, since they are set now to the best by default. Timings where: SVG/Canvas=0.98/1.015. Still see some effects missing, like initial fade out effect.|
|Klanticus||geForce 8600M GT||184.108.40.206-0.2-default (OpenSuse 11.0)||177.82 (x86_64)||2||1||Much better now, but there's still some slowdowns while resizing.|
|Nick P||geForce 8800 GT||2.6.26-1-686 (Debian Testing)||173.14.09-5 (x86)||2||1||Much faster, although sometimes there are some slowdowns resizing large windows|
|Berk U||GeForce 9800M GS||2.6.27-11-generic (Ubuntu Intrepid Ibex x86_64)||177.82||2||1||Huge difference, not only in KDE but also other desktops. (Resizing is still slow). SVG/Canvas is 1/1.|
- I.P.P. = InitialPixmapPlacement
- G.C. = GlyphCache
I haven't done a lot of testing using this setup, so in case you encounter any unwanted effects (on 3D applications or other 2D applications), please put them below.
- With BackingStore set to 1 in xorg.conf it may be possible that the KDE session crashes on startup (kdm works but kwin does not).
- Following those steps with cards from the 7xxx series is said to increase GPU temperature a lot. 
- On changing kwin's effects settings might not be possible because on applying the changes X might freeze for a period of time longer than the 10 seconds you have to confirm the change.
- The Yakuake terminal has scrolling problems after these changes, it also takes long to appear / disappear, regardless of the animation speed you set.