VAO をバインドしようとすると、ランダムに表示される奇妙なクラッシュに直面しています。
VAO 自体は glGenVertexArrays によって以前に生成されており、エラーは返されません。
glGenVertexArrays(NUM_VAO,vao);
glGenBuffers(NUM_VAO,vbo);
glBindVertexArray(vao[2]);
glBindBuffer(GL_ARRAY_BUFFER,vbo[2]);
glBufferData(GL_ARRAY_BUFFER,1024*sizeof(GLfloat),NULL,GL_DYNAMIC_DRAW);
glVertexAttribPointer(...);
glEnableVertexAttribArray(...);
実行中、次への呼び出し:
glBindVertexArray(vao[2])
INVALID_OPERATION を生成する場合と生成しない場合があります。vao[2] の内容は glGenVertexArrays によって返されるものと同じであり、配列は実行中に削除されないことに注意してください。
仕様によると、ゼロ以外の名前が渡され、名前自体が glGenVertexArrays によって返されなかった場合にのみ INVALID_OPERATION が発行されますが、これは明らかに当てはまりません。
この問題は、アプリケーションの実行時間の約 15% で散発的に発生しますが、それ以外の場合はすべて期待どおりに機能します。デバッグ モードでも問題が解決しない。
ワークステーションをアップグレードしたばかりで、以前は NVidia ドライバー 290.10 および Qt 4.7.1 を使用して OpenSUSE 12.1 で開発していましたが、この問題は一度もありませんでした。
NVidia ドライバー 304.43 および Qt 4.8.1 を使用して OpenSUSE 12.2 に移行したところ、この問題が発生しました。
誰かが前にそのような状況に遭遇したことがありますか? 何か不足していますか?