glDrawPixel() slower with nvidia?

i know there was a similar posting a few weeks ago, but i have sort of a puzzling situation. i have written a simple little game that displays lots .bmp images(lots of glDrawPixels()). I was running :
-mandrake 7.2
-XFree86 3.3.6 (with experimental accel???)
-Mesa 3.3-14
All without any nvidia drivers. i then installed redhat 7.1. i am now using :
-XFree86 4.0.3
-NVIDIA driver and libraries.
The problem is that now my game runs ~20 times slower. i believe that the nvidia stuff is installed correctly because:
-dpyinfo has “GLX” “NV_GLX” “NVIDIA_GLX”
-using nvidia driver, not nv
-glGetString(renderer) = RIVA TNT2/PCI/3DNOW
i have run the identical program on both of these setups mentioned and got roughly 20x more frames per second for my test on the mandrake setup. the puzzling question is why would a simple operation such as glDrawPixel be that much faster with older versions of X and Mesa?

glDrawPixels is probably faster with software only OpenGL on most systems. Copy data from the system memory to the card is very slow at least on most consumer hardware.

If you want to increase performance is perhaps pbuffers a better alternative. The best would probably be to upload everything during initiation.

I recently installed the nVidia drivers. I also experienced slower performance from my maze program using glDrawpixels. What exactly is the p-buffer (a software frame buffer?).

Yes, I think a pbuffer is pretty much like a software frame buffer. A technical presentation from nvidia

The usual advice is to use the back buffer if you can for things like dynamic sphere maps instead of pbuffers.

As mentioned before is “the right way” with consumer hardware to upload everything and avoid it in time critical sections. Using a display list can increase the glDrawPixel performance.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.