I've noticed with my hardware that I get soft lockups (everything frozen except mouse, xmms finishes the currently playing song) and the occasional hard lockup (everything frozen, music stuck on last tone) with either agpgart or
the nVidia agp driver.
I had previously thought that the nVidia agp driver was working fine, but on investigation I determined that it was never really loading (agpgart was a loaded module, so nVidia agp wasn't loading, and since I had specified Option "NvAgp" "1" in the Device section it also wasn't using the loaded agpgart module) according to /dev/proc/drivers/nvidia/agp/status. I had assumed that it would automatically unload agpgart to load nv-agp, but I guess not.
Anyway, with or without an AGP driver in use glxgears runs about the same (approx 1100fps). Does it not take any advantage of AGP when it's active? I haven't noticed any other real difference between an agp driver loaded or not aside from the lockups :P
Here are some details about my system:
00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge (rev 80)
01:00.0 VGA compatible controller: nVidia Corporation NV34 [GeForce FX 5200] (rev a1)
Slackware 12.2 (updated from 12.1), Kernel 184.108.40.206, nVidia driver 7676
Another thing I've noticed is that prior to the last couple days of experimentation the nVidia drivers were installing fine from the .run file, but now I get an error that libnvidia-tls.so.1 was found in /usr/lib when apparently it shouldn't be, but it's the installer that's putting it there (unless there's some other new mechanism at work). I've been installing with make install after extracting from the installer (which ironically doesn't create the /usr/lib/tls/libnvidia-tls.so.1 symlink).
I've found that scrolling windows are occasionally responsible for hard lockups, and the xscreensaver hack euler2d (regular or dense) is almost guaranteed to lock up soft or hard withing 5 minutes of running. When it locks hard, there's usually a horizontal line of garbage somewhere on the screen (not across the whole width though).
I've tried playing with the AGP drive strength with no success. I haven't tried forcing down to 4x or 2x to see if that works. Does anyone have any advice on how I can get it to work optimally?