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

Posted

技术标签:

【中文标题】X Error of failed request: BadValue (integer parameter out of range for operation)【英文标题】: 【发布时间】:2017-03-31 09:05:28 【问题描述】:

我正在尝试编译和运行这个 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。

【问题讨论】:

你用什么命令编译的? @EliSadoff g++ main.cpp -o lookAtThis -lglut 当您执行 X-over-SSH 时,OpenGL 命令被序列化到 X11 传输中,以由您登录的机器上的显示服务器和硬件处理。所以你甚至没有使用 Tegra for OpenGL。 @datenwolf 真的吗?我没有意识到这一点。所以不能通过ssh测试TX1的图形输出? @ViniciusMilaniR.Freitas:不是通过 X11 隧道。 X11 实际上只是将绘图命令(作为远程过程调用)传输到带有显示器的机器上的 X11 服务器,并在那里执行命令。你需要做的是在远程机器上启动一个 X11 服务器(它甚至可以与 Tegra 一起工作吗?)并使用一些远程帧缓冲区(VNC 等)来传输结果。 【参考方案1】:

我遇到了这样的错误:

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 文件安装 NVIDIA 驱动程序解决了这个问题,选项 --no-opengl-files (灵感来自这里:https://gist.github.com/wangruohui/df039f0dc434d6486f5d4d098aa52d07)

希望这会有所帮助!

【讨论】:

顺便说一句,当您为正在运行的 X 服务器更新视频驱动程序时,会发生此特定错误 (GLX:24 X_GLXCreateNewContext) 错误,请重新启动 X 以解决它 @ThorSummoner 我也遇到了同样的问题,我确实只是更新了我的 Nvidia 驱动程序。重新启动 X 确实按照您的建议修复了它。所以,谢谢。 @ThorSummoner 非常感谢,刚刚遇到这个问题,您的解决方案完美运行!【参考方案2】:

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

【讨论】:

这对我有用。

以上是关于X Error of failed request: BadValue (integer parameter out of range for operation)的主要内容,如果未能解决你的问题,请参考以下文章

request:fail parameter error: parameter.url should be String instead of Undefined;

rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm出现error: open of vsftpd-3.0.2-22.el7.x86_64.rpm failed: No su

使用git提交时报错:error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity

Linux下“read failed after 0 of 4096 at 0: Input/output error”

login auth failed errormsg :http request params error啥意思

Error creating bean with name 'fileController': Injection of resource dependencies failed;(示