1. ホーム
  2. opengl

[解決済み] X リクエストが失敗したときのエラー。BadValue (整数パラメータが操作の範囲外です)

2022-01-28 20:20:04

質問

次の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's hello world" です。 私は、大学の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のグラフィックカードを使用しています。 .runファイルから、--no-opengl-filesオプションを付けてNVIDIAドライバをインストールすることで解決しました(ここからインスパイアされました。 https://gist.github.com/wangruohui/df039f0dc434d6486f5d4d098aa52d07 )

お役に立てれば幸いです。