X 请求失败错误:BadValue(整数参数超出操作范围)

X Error of failed request: BadValue (integer parameter out of range for operation)

我正在尝试编译 运行 这个 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(使用 -X 标志)连接到 TX1。编译正常,但是当我尝试 运行 程序时,出现此错误:

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 从 .运行 文件安装 NVIDIA 驱动程序解决了这个问题(灵感来自这里:https://gist.github.com/wangruohui/df039f0dc434d6486f5d4d098aa52d07

希望对您有所帮助!

将我的用户添加到 video 组并重新启动解决了我的问题 (source)。 glxgears 现在也可以了。 还是要查看是否还有其他相关问题没有解决。

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo ubuntu-drivers autoinstall
sudo reboot