web-dev-qa-db-ja.com

X失敗した要求のエラー:BadValue(操作の範囲外の整数パラメーター)

このc ++コードをコンパイルして実行しようとしています

#include <GL/glut.h>

void displayMe(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POLYGON);
        glVertex3f(0.0, 0.0, 0.0);
        glVertex3f(0.5, 0.0, 0.0);
        glVertex3f(0.5, 0.5, 0.0);
        glVertex3f(0.0, 0.5, 0.0);
    glEnd();
    glFlush();
}

int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE);
    glutInitWindowSize(300, 300);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("Hello world :D");
    glutDisplayFunc(displayMe);
    glutMainLoop();
    return 0;
}

これは私がオンラインで見つけた「openglのHelloWorld」です。これは、大学のNVIDIA Tegra X1をテストするために行っています。TX1開発キットは常にオンであり、大学のネットワークに接続されています。 ssh経由でTX1に接続しています(-Xフラグを使用)。コンパイルは正常に行われましたが、プログラムを実行しようとすると、次のエラーが表示されます。

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  29
  Current serial number in output stream:  30

オンラインで何も見つかりませんでした。何が起こっているのかわかりません。

PS:最初にssh経由で大学のネットワークに接続し(-Xを使用)、次に別のsshを実行してTX1に接続します。

次のようなエラーが発生していました。

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  151 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  35
  Current serial number in output stream:  36
name of display: :99

リモートマシンで、nvidiaグラフィックカードを使用。オプション--no-opengl-filesを使用して.runファイルからNVIDIAドライバーをインストールすることで問題を解決しました(ここからインスピレーションを得ています: https://Gist.github.com/wangruohui/df039f0dc434d6486f5d4d098aa52d07

お役に立てれば!

3
Mircea