代码之家  ›  专栏  ›  技术社区  ›  Steve Fallows

初始化过剩时出现问题

  •  2
  • Steve Fallows  · 技术社区  · 15 年前

    我将我的问题简化为以下示例:

    #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代码创建一个像素缓冲区对象(目前还不能显示它的输出)。我还尝试用一系列GLX调用创建一个上下文,这些调用在调用gkxmakeCurrent时具有相同的延迟和闪烁。

    1 回复  |  直到 15 年前
        1
  •  1
  •   AndyG    15 年前

    你有显示功能吗? 我不确定这样做是否有帮助,但也许可以放入一个显示函数,在该函数中清除缓冲区可能有帮助?

    例如 glutdisplayfunc(我的显示器);

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

    您使用的编译器是什么?并且,您是否研究过与Fedora10和OpenGL相关的任何可能的性能问题(我现在正在研究第二个位)。

    编辑:在《费多拉10》中,确实有一些关于一个表演大受欢迎的轶事。 Here Here . 第二个似乎至少描述了你的一个症状。你能在另一个操作系统上尝试你的代码吗?