初始化过剩的问题

时间:2010-01-21 02:20:50

标签: c++ glut

我已将此问题简化为此示例:

#include <GL/glut.h>

int main(int argc, char** argv)
{
    glutInit(&argc, argv);

    glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize (600, 600);
    glutInitWindowPosition( 0, 0 );

    int win = glutCreateWindow("Recon");

    return 0;
}

执行glutCreateWindow时,大约需要1分钟,屏幕会闪烁几次。

这太漫长了。这不正常。

环境:

  • Fedora 10
  • 双NVIDIA GTX280显卡驱动3台显示器。
  • 安装了NVIDIA驱动程序版本190.53 CUDA 2.3
  • gcc version 4.3.2 20081105(Red Hat 4.3.2-7)(GCC)

关于什么可能出错的任何想法?

编辑:我没有显示功能,因为我的最终目标是创建一个渲染上下文,以便我可以从一些CUDA代码创建一个Pixel Buffer Object(目前它不会显示它的输出。我也有尝试使用一系列glx调用创建一个上下文,当调用gkxMakeCurrent时,会发生相同的延迟和闪烁。

1 个答案:

答案 0 :(得分:1)

你有显示功能吗? 我不确定这是否会有所帮助,但是可能会使用显示功能来清除缓冲区可能会有所帮助?

e.g。     glutDisplayFunc(myDisplay);

void myDisplay()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // clear the screen
    glutSwapBuffers();
}

您使用的是什么编译器?并且,您是否已查看与Fedora 10和openGL相关的任何可能的性能问题(我现在正在调查第二位)。

编辑:在Fedora 10中肯定会有一些关于性能受损的故事 HereHere。第二个似乎至少描述了你的一个症状。你能在另一个操作系统上试用你的代码吗?