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

Vin*_*tas 5 x11 opengl ssh nvidia tegra

我正在尝试编译并运行此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;
}
Run Code Online (Sandbox Code Playgroud)

这是我在网上找到的“ opengl的问候世界”。我这样做是为了测试我大学的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
Run Code Online (Sandbox Code Playgroud)

我还没有在网上找到任何东西,也不知道发生了什么。

PS:我首先要通过ssh(使用-X)连接到我大学的网络,然后再执行另一个ssh连接到TX1。

JSM*_*gan 19

我在运行时遇到了同样的错误glxgears(检查 OpenGL 是否正常运行)。然后我意识到我的 nvidia 驱动程序很无聊:

$ nvidia-smi
Failed to initialize NVML: Driver/library version mismatch
Run Code Online (Sandbox Code Playgroud)

我只需要重新启动计算机。nvidia-smiglxgears在重新启动后工作。

总结:尝试重新启动计算机

  • 我认为这就是问题所在。我将文件复制到另一台机器上,问题就消失了 (2认同)
  • 也解决了我的问题。这应该被接受为答案 (2认同)

san*_*ica 9

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


Mir*_*cea 8

我收到这样的错误:

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
Run Code Online (Sandbox Code Playgroud)

在带有 nvidia 显卡的远程机器上。通过从 .run 文件安装 NVIDIA 驱动程序解决问题,使用选项 --no-opengl-files (灵感来自此处:https : //gist.github.com/wangruohui/df039f0dc434d6486f5d4d098aa52d07

希望这可以帮助!

  • 顺便说一句,当您为正在运行的 X 服务器更新视频驱动程序时,会发生此特定错误 (GLX:24 X_GLXCreateNewContext) 错误,重新启动 X 即可解决该错误 (9认同)
  • @ThorSummoner 我也遇到了同样的问题,我*确实*只是更新了我的 Nvidia 驱动程序。重新启动 X 确实按照您的建议修复了它。所以谢谢。 (2认同)
  • 对于未来的读者,我通过运行“sudo apt --fix-broken install”然后运行“sudo restart”来解决我的问题。 (2认同)