I installed linux (Debian) on an old laptop and have been writing an OpenGL application with it. The framerate cruises at about 80fps when drawing a texture on a small portion of the screen. When I draw the texture on a bigger and bigger portion of the screen, the framerate drastically drops. A full-screen texture drops the fps to 12.
I know the hardware is capable of rendering at a faster rate. Even if openGL was running in software mode.. that still seems pretty slow.
Any ideas on how to diagnose this?
Things I’ve tried:
glxinfo has let me know the laptop is capable of hardware acceleration opengl rendering. While I’m not positive it isn’t running in software, I’m fairly sure the laptop is setup to run in hardware opengl.
I ditched the depth buffer and am only requesting a 24bit screen buffer in a resolution the laptop supports. (With a backbuffer still).
Switching from GL_TEXTURE_MIN_FILTER, GL_LINEAR to GL_TEXTURE_MIN_FILTER, GL_NEAREST bought me back some frames, but it’s hovering at slightly over 20fps, which is still too slow.
I’ve switched from glShadeModel( GL_SMOOTH ) to glShadeModel( GL_FLAT ). I’ve gotten no speed up.
I’ve tried rendering the texture as a vertexpointer and as a glBegin( GL_QUADS ) call.
Advertisement
Answer
If switching from BILINEAR (GL_LINEAR) to NEAREST makes the framerate better, you are definitely running software renderer.
Please do this, from the command line (this is from my OSX, but should be similar on linux):
# glxinfo | grep OpenGL OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: NVIDIA GeForce 8600M GT OpenGL Engine OpenGL version string: 2.1 NVIDIA-1.6.26 OpenGL shading language version string: 1.20 OpenGL extensions: