我已将此问题简化为此示例:
#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分钟,屏幕会闪烁几次。
这太漫长了。这不正常。
环境:
关于什么可能出错的任何想法?
编辑:我没有显示功能,因为我的最终目标是创建一个渲染上下文,以便我可以从一些CUDA代码创建一个Pixel Buffer Object(目前它不会显示它的输出。我也有尝试使用一系列glx调用创建一个上下文,当调用gkxMakeCurrent时,会发生相同的延迟和闪烁。
答案 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中肯定会有一些关于性能受损的故事 Here和Here。第二个似乎至少描述了你的一个症状。你能在另一个操作系统上试用你的代码吗?