nVIDIA drivers slow?

I’ve noticed that the nVIDIA drivers for Linux (latest) are almost 6 times slower than my windows drivers (12.01)
I’m very sure that it’s NOT software rendering and the drivers are loaded correctly.

Can someone tell me if it’s normal that those drivers are so slow?

I’ve read that it can be slower because of some conflicting Mesa drivers but since I’m very new to Linux I don’t know wich files to remove…
Here are the mesa files I found in “/usr/X11R6/lib”:

libMesaGL.so.1
libMesaGL.so.1.0
libMesaGL.so.3
libMesaGLU.so
libMesaGLU.so.1
libMesaGLU.so.3

Some details:

  • Direct rendering is enabled.
  • I’ve got XFree86 4.0.3 installed so that shouldn’t be the problem.
  • My videocard is a GeForce2 MX

Hmm, it seems that it’s not a conflicting Mesa library…
(checked with ldd)

AGP is also enabled
(checked with cat /proc/nv/card0)

Don’t GeForece’s (and all NVidia cards) use the NVidia drivers and not mesa?
http://www.nvidia.com/Products/Drivers.nsf/Linux.html

Well, actually I am using the nVIDIA drivers, but they’re just 6 times slower than the windows drivers
And it’s not software rendering (I’ve tried the Mesa drivers before installing nVIDIA’s drivers)

[This message has been edited by richardve (edited 05-02-2001).]

Are you sure the files you posted above are the only opengl libraries you have installed?Try find / -name ‘libGL’ as root to see if there are any other libraries that may be used instead of nvidia’s.

This is what I got after doing that find command as root:

/usr/lib/libGL.so.1.0.769
/usr/lib/libGLcore.so.1.0.769
/usr/lib/libGLcore.so.1
/usr/lib/libGL.so.1
/usr/lib/libGL.so
/usr/X11R6/lib/libGLU.so.1
/usr/X11R6/lib/libGLU.so.1.2.030401
/usr/X11R6/lib/libGLU.so.3
/usr/X11R6/lib/libMesaGLU.so.1
/usr/X11R6/lib/libMesaGLU.so.3
/usr/X11R6/lib/libGL.so.1
/usr/X11R6/lib/libGL.so.3
/usr/X11R6/lib/libGL.so
/usr/X11R6/lib/libGLw.a
/usr/X11R6/lib/libGL.so.1.0
/usr/X11R6/lib/libGL.so.1.2.030401
/usr/X11R6/lib/libGLwrapper.so.0.1.4
/usr/X11R6/lib/libMesaGL.so.1
/usr/X11R6/lib/libMesaGL.so.1.0
/usr/X11R6/lib/libMesaGL.so.3
/usr/X11R6/lib/libGL.la
/usr/X11R6/lib/libGLU.la
/usr/X11R6/lib/libGLU.so
/usr/X11R6/lib/libMesaGLU.so

But like I said in my first post; I really don’t know wich of those files can be deleted…

Hi,

try this:
rm -f /usr/lib/libGL.*
rm -f /usr/lib/libGLcore*
rm -f /usr/X11R6/lib/libGLU*
rm -f /usr/X11R6/lib/libMesa*
rm -f /usr/X11R6/lib/libGL*

rm -f /usr/X11R6/lib/extensions/libglx*
rm -f /usr/X11R6/lib/extensions/libGL*

rm -f /usr/X11R6/lib/modules/drivers/nvdia.o (or nv.o)
(not sure, about the path; do a search)…

then, download the NVIDIA_KERNEL and GLX thingy from their page, unpack it in your locar dir, and move the libs (with links)
to /usr/X11R6/lib…

the libGLcore* and libglx* stuff goes to /usr/X11R6/lib/extensions

the nv.o (or was it nvidia.o) has to be copied to /usr/X11R6/lib/modules/drivers/

in general: all files which contain “mesa”
have to be removed

that should work,

walantis

I’ve done everything wich is suggested but it’s still too slow

Hi,

another idea…take a look (as root) at this:

cat /proc/nv/card0

and tell me what you see…maybe there’s a problem
with agp support ?!

hope it helps,

walantis

----- Driver Info -----
NVRM Version: 1.0-769
----- Card Info -----
Model: GeForce2 MX
IRQ: 11
----- AGP Info -----
AGP Status: Enabled
AGP Driver: NVIDIA
Bridge: Via Apollo Pro
SBA: Supported [disabled]
FW: Unsupported [disabled]
Rates: 2x 1x [2x]
Registers: 0x07000203:0x00000102

Nothing wrong with it AFAIK…

Could it be that Linux has a larger function calling overhead wich makes it slower when using immediate mode (glVertex3f[v], etc) for rendering?

Well these *.030401 files seem to be from the mesa 3.4.1 distribution and used software rendering(if they were actually used of course),some of the others as well possibly.I think what walantis means with all these rm -f’s is that you should delete everything in that list returned by find first so make sure that the same find command return nothing afterwards.Then install the correct libs which means the ones from nvidia using the installation instruction they should give you.You might also wanna do a ‘ldconfig -v|grep GL’ as root to see what lib files of opengl are actually beeing used.Good luck.

Interesting… I do have the nvidia drivers for linux and it is no speed problem but some programs fails to run or rather the display is never updated. All benchmark I have seen also shows almost identical numbers for linux/windows.

How do you get the libMesa* files? I do not have them. Mesa installed the normal GL* files but nvidi overwrote them.

I checked my AGP status but it was disabled. How did you enabled yours?

I do not know what the problem is but here is a list with things to check:

  • check that XF86Config have Driver “nvidia” and not Driver “nv”
  • make sure that XF86Config has Load “glx”
  • make sure it does not have Load “dri” or Load “GLcore”
  • run xdpyinfo and make sure that you have “GLX”, “NV-GLX” and “NVIDIA-GLX”
  • try to disable AGP in XF86Config by setting Option “NvAGP” “0”
  • run the gears sample with -info and study the output
  • my GL libs are in /usr/lib but it seems yours are in /usr/X11R6/lib?

zen:

Thx, but I really did exactly what walantis said

nvidia_linux:

I got the Mesa files by installing them
Just wanted to try them before using the nVIDIA drivers.

XF86Config-4 has Driver “nvidia” and Load “glx”
It doesn’t load “dri” or “GLcore”
xdpyinfo says that GLX, NV-GLX and NVIDIA-GLX are there.
Disabling AGP doesn’t help (I did restart Linux of course).

The gears sample runs with 400 FPS in 800x600 resolution (windowed)

Those GL libs in /usr/X11R6/lib are mostly symlinks…

I’ve tried some more GL programs and it seems that NeHe’s tutorials (Linux/X version) are the only programs wich are so slow under Linux (maybe because they’re using immediate mode?).

After trying TuxRacer under Win2K and Linux I came to the conclusion that it’s actually many times faster when using vertex arrays…

Average FPS in Win2K (detonator 11.01): 49 FPS
Average FPS in Linux (769): 111 FPS (!)

Nice increase of FPS…

“I checked my AGP status but it was disabled. How did you enabled yours?”

I haven’t done anything to enable/disable it

Hi!

Maybe this will help:
you said that only the nehe demos run so slow (not because imm. mode, i use it, too).

BUT: maybe you have build your libGLU and libglut with the new GL libs from nvidia ?

try it out…

Since you’re getting 400fps in gears you are running in HW but you said it doesn’t load dri and glcore and I think that’s your problem.Checkout dri.sourceforge.net for info on setting up dri(which is very important)and some sample xf86 config files for many cards.

Walantis:

No, I haven’t build anything (it’s all out of the box) so it’s impossible that the libGLU & libGLUT are build with the libs from nVIDIA.

However, I’ve tried to rebuild them and nothing changed…

zen:

The README from nVIDIA says that I should not load dri and glcore.
But direct rendering is enabled.
(checked with glXIsDirect())

I’ve noticed something weird today…
When I press 2 or more keys in TuxRacer it slows down to 20 FPS until I release the keys.
I’m also pressing a key to rotate the cube in NeHe’s tutorials.

Sometimes do I also got some strange performance (both faster and slower) compared to windows. I looked at some benchmarks and they showed an almost identical speed. Somewhere did I read that nvidia use the same code base so this is hard to explain.

I managed to get agpart running and the speed increase was pretty good, like10-20% but after about 10 seconds did the computer crash. If anyone is curious can I report that linux do some kind of scandisk like windows then restarting from a crash.
Maybe did the driver check the agp driver and refused to use it…

The glu and glut libraries are shared like windows dlls so they use any updated gl libraries without recompiling. The tempation was too big so I downloaded the glu 1.3 libs from the mesa page but perhaps will I get problems with windows portability.

Another brain storming idea is to change the color depth of the desktop. I tried SDL but got among other problem with the keyboard input. Perhaps is it some problems with the new XFree86?
But glut works…

Since nvidia_linux has mentioned agpgart.Have you configured your kernel correctly.I don’t know how you’re supposed to do it with nvidia cards,but I have to compile(either in the kernel or as a module) the agpgart driver and the dri driver for my card.If they compiled as modules they have to be loaded before X starts.

look at the following unofficial HOW TO:

NVIDIA, XFREE86 & RED HAT 7.0 http://www.evil3d.net/articles/linux/howto/nvidia/redhat7/

Of note is the new config file for XFREE86 4
/etc/X11/XF86Config-4
the docs for xfree mention the order of config file locations that are looked at. make sure that the config U think you are using is really being used.

you should look at the information x prints to screen as it loads each line is preceeded by 2 characters of status. I think that two EE means that the rest of the line tells you what failed to load

I just got the first thing i’ve ever done in opengl in linux compiled and, richardve, whatever you do don’t delete this topic. I think i’m going to have to do whatever it is your doing to speed mine up. I just compiled something in linux that i’ve seen run before in windows and something is definitely wrong here…