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分かかり、画面が数回ちらつきます。

これは途方もなく長いです。これは正常ではありません。

環境:

  • Fedora 10
  • 3台のモニターを駆動するデュアルNVIDIAGTX280カード。
  • NVIDIAドライバーバージョン190.53CUDA2.3がインストールされています
  • gccバージョン4.3.220081105(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に関連して発生する可能性のあるパフォーマンスの問題を調べましたか(現在、2番目のビットを調べています)。

編集:Fedora 10 HereandHereでヒットしたパフォーマンスのいくつかの逸話は間違い なくあります。2つ目は、少なくとも1つの症状を説明しているようです。別のOSでコードを試すことができますか?

于 2010-01-21T02:28:05.303 に答える