2

我已经将我的问题简化为这个例子:

#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 分钟,屏幕会闪烁几次。

这可笑的长。这不可能是正常的。

环境:

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

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

编辑:我没有显示功能,因为我的最终目标是创建一个渲染上下文,以便我可以从一些 CUDA 代码创建一个像素缓冲区对象(目前不会显示其输出。我还尝试创建一个当调用 gkxMakeCurrent 时,一系列 glx 调用具有相同的延迟和闪烁的上下文。

4

1 回答 1

1

有显示功能吗?我不确定这是否会有所帮助,但也许放置一个清除缓冲区的显示功能可能会有所帮助?

例如 glutDisplayFunc(myDisplay);

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

你用的是什么编译器?而且,您是否研究过与 Fedora 10 和 openGL 相关的任何可能的性能问题(我现在正在研究第二个问题)。

编辑:肯定有一些关于 Fedora 10 HereHere性能受到影响的轶事。第二个似乎至少描述了您的一种症状。你能在另一个操作系统上尝试你的代码吗?

于 2010-01-21T02:28:05.303 回答