これは本当に奇妙な質問です。
GLEW と GLFW を使用するプログラムで実行されている単一の均一な vec4 を持つ非常に単純なシェーダーがあります。このプログラムは、私がプログラムを実行した nVidia グラフィックス カードを搭載した複数のマシンで問題なく動作します。
問題は、インテル グラフィックス 3000 チップ (ターゲットとしているバージョンの OpenGL 3.1 をサポートする) を搭載したラップトップに切り替えると、均一な変数 (glProgramUniform4f、glProgramUniformMatrix4fv、その他すべて) の値を設定しようとする関数呼び出しが発生することです。 )、アクセス違反でゲームがクラッシュします。
さらに (これが直接の問題ではないことはわかっていますが、解決策に関係しているのではないかと思います)、nVidia マシンで glGetUniformLocation を呼び出すと小さい値が返されますが、Intel マシンで同じ呼び出しを行うと大きな値が返されます ( > 6桁)の値。
コードを投稿しますが、何が役立つのか正確にはわかりません。解決策が思い浮かびませんが、どのような種類のコードを投稿する必要があるかについてのアイデアがある場合は、お知らせください。喜んでお手伝いさせていただきます。
ありがとうございました!