OpenGL全屏纹理使帧率降至12fps

时间:2011-06-04 05:17:11

标签: linux performance opengl debian blit

我现在几个晚上都在研究这个问题,任何提示都会被提及:

我在一台旧笔记本电脑上安装了linux(Debian),并用它编写了一个OpenGL应用程序。当在屏幕的一小部分上绘制纹理时,帧速率以大约80fps巡航。当我在屏幕的越来越大的部分上绘制纹理时,帧速率急剧下降。全屏纹理将fps降至12。

我知道硬件能够以更快的速度渲染。即使openGL在软件模式下运行......看起来仍然很慢。

任何关于诊断这一点的指示都将不胜感激,谢谢。我是OpenGL的新手,所以它可能是显而易见的。

我尝试过的事情:

  • glxinfo让我知道笔记本电脑能够进行硬件加速opengl渲染。虽然我不肯定它不是在软件中运行,但我很确定笔记本电脑是设置为在硬件opengl中运行。

  • 我放弃了深度缓冲区,只是请求笔记本电脑支持的分辨率为24位的屏幕缓冲区。 (还有后备缓冲)。

  • 从GL_TEXTURE_MIN_FILTER,GL_LINEAR切换到GL_TEXTURE_MIN_FILTER,GL_NEAREST给我带回了一些帧,但是它徘徊在略高于20fps的位置,这仍然太慢了。

  • 我已经从glShadeModel(GL_SMOOTH)切换到glShadeModel(GL_FLAT)。我没有加速。

  • 我尝试将纹理渲染为顶点指针和glBegin(GL_QUADS)调用。

提前致谢, 〜w ^

1 个答案:

答案 0 :(得分:0)

如果从BILINEAR(GL_LINEAR)切换到NEAREST会使帧率更好,那么你肯定在运行软件渲染器。

请从命令行执行此操作(这是来自我的OSX,但在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: