SGI Mesa client glx settings return
I'm running Mandriva 2006 with an nVidia 6800 and driver 8178. When I previously installed the nvidia driver on my Mandriva LE 2005 system I had no problems, but this is what happens now:
It seems that the latest mandriva installs the software based SGI mesa3D glx driver (this is probably done for people who like some basic 3D but don't play games), but after that I could install the nvidia 3D driver. At first the performance was really crappy, and this seemed to be cause because only the server side of the nvidia driver was actually in use, and the client site was still the software base mesa3D glx driver. This was noticeble on the glxinfo output, where one of the first lines mentioned 'Direct rendering: No".
The solution for this was to correctly link the nvidia dynamic libraries instead of the Mesa ones. This is a script that does this (it also switches the nv/nvidia driver statement in my xorg.conf, but that's not the problem):
# Usage: nvidia-use-old <enable|disable>
# Switch between nvidia and nv use. You need to restart X for "nv"
# (c) GPL by jlo
if [ "$1" == "enable" ]; then
ln -f -s ../../lib/libGL.so.1.0.8178 /usr/X11R6/lib/libGL.so.1
ln -f -s ../../lib/libGL.so.1.0.8178 /usr/X11R6/lib/libGL.so
perl -pe 's/^\s+Driver\s+\"nv\"\s*$/\tDriver "nvidia"\n/;' -i /etc/X11/xorg.conf
ln -f -s libGL.so.1.2 /usr/X11R6/lib/libGL.so.1
ln -f -s libGL.so.1.2 /usr/X11R6/lib/libGL.so
perl -pe 's/^\s+Driver\s+\"nvidia\"\s*$/\tDriver "nv"\n/;' -i /etc/X11/xorg.conf
When I ran this script (with 'enable' as the argument) and restarted my X everthing was completely fine and ran smoothly. My glxinfo also stated that Direct rendering was on, and the server and client glx vendor string were both "NVIDIA Corporation".
I can see the performance dropping (with my favorite game RTCW:ET) from 80 fps with the correct nvidia config to 6 fps with the server-nvidia and client-mesa sombination.
When I play RTCW:ET twice (or once, can't say for sure), my system automatically resets those mesa3D settings so that my direct rendering is turned off again and the client glx driver becomes that from SGI again. So I need to run that script again to reset those symbolic links and I need to restart my X server.
How on earth is this possible?
This is my glxinfo output, now that my system has the truly bad settings (I don't include useless info):
name of display: :0.0
display: :0 screen: 0
direct rendering: No
server glx vendor string: NVIDIA Corporation
server glx version string: 1.3
server glx extensions:
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 6800/AGP/SSE/3DNOW!
OpenGL version string: 1.4 (2.0.1 NVIDIA 81.78)