PDA

View Full Version : Windows XP nVidia OpenGL performance


catach
07-29-04, 11:18 PM
Hi all. I'm currently doing research using OpenGL and Render-To-Texture, and so have been forced from a Linux platform into Windows as there is no RTT for GLX. I need some info regarding performance: my code in Linux runs about four times as slow in Windows. The app is nothing special, rendering a 4096 polygon model
of a horse using a vertex array (no Render-To-Texture switched on). In Linux the fastest frame rate I can get is about 900fps by shrinking the window really small. Doing the same in Windows only gets about 200-250 or so.

Yes, I know that it's not the best benchmark, but it serves as an example, and I observe around the same performance difference of other code running on Linux compared to Windows. I've tried messing with the nVidia Driver Performance stuff, and turning 'High Quality' down to 'High Performance' helps a bit. Also I've noticed that nView seems to force VSync on OpenGL apps when using two monitors. Turning off nView got may frame rate about 72Hz.

What are other people's experience? Can anyone give me tips on how to improve the performance i'm seeing under Windows? I'm using Visual C++ to compile, has anyone tried Intel's compiler?

Thanks

666_1337
07-30-04, 12:20 AM
I have used the Intel C++ compiler, and it's slightly faster than Visual C++ .NET 2003, but that isn't going to help you, since you don't compile your libGL.so/OpenGL32.dll yourself.

First thing: In linux, immediate-mode-calls are buffered, and therefore much faster than it should normaly be. Still immediate-mode is much slower than vertex arrays or vertex array ranges. So obey immediate-mode-calls whenever it's possible

Second thing: How do you render into the texture in windows/linux?

Third thing: don't do things like this: http://www.nvnews.net/vbulletin/showthread.php?t=33432

catach
07-30-04, 08:33 AM
First thing: In linux, immediate-mode-calls are buffered, and therefore much faster than it should normaly be. Still immediate-mode is much slower than vertex arrays or vertex array ranges. So obey immediate-mode-calls whenever it's possible

I dont want to believe it's simply bad OpenGL Windows libraries, as that means it's harder for me to fix. The hardcode Linux side of me wants to label it as Microsoft choking OpenGL development, but I'd rather save that excuse for last :). There has to be some other software/driver issue i'm missing, as I refuse to believe OpenGL runs this slow in Windows. Reinstalling nVidia drivers will always overwrite the old libGL.dlls wont it? Perhaps I have really old libraries hanging around somewhere...

Second thing: How do you render into the texture in windows/linux?

The figures above don't use any rendering/copying to texture. It's a simple 3D model rendered straight to the framebuffer, thats it. If you wanted to know how RTT is done in code then this is helpful: http://www.markmark.net/misc/rendertexture.html

Third thing: don't do things like this: http://www.nvnews.net/vbulletin/showthread.php?t=33432

Haha, yeah that is a little desperate :) Couldn't figure out how to post in multiple forums.

saturnotaku
07-30-04, 10:03 AM
Haha, yeah that is a little desperate :) Couldn't figure out how to post in multiple forums.

The point was that you shouldn't post in multiple forums at all. You can create one topic and bump it (after 24 hours) but it's bad ettiquite to post the same topic in different places.