这意味着什么根本问题?哪个整数参数超出范围?源代码是哪部分?最重要的是,我该如何解决这个问题?
[vo/opengl/x11] X11 error: BadValue (integer parameter out of range for operation)
[vo/opengl/x11] Type: 0, display: 0x7f264c43f950, resourceid: 0, serial: 3f
[vo/opengl/x11] Error code: 2, request code: 9a, minor code: 3
答案1
[vo/opengl/x11] Error code: 2, request code: 9a, minor code: 3
该错误是由扩展请求生成的:所有 >= 128 的请求代码均保留用于扩展 (0x9a = 154)。
您必须首先获取使用 154 操作码的扩展:
$ xdpyinfo -queryExtensions | grep 'opcode: 154'
XFree86-VidModeExtension (opcode: 154, base error: 175)
您的 Xserver 可能会以不同的方式分配操作码;假设它XF86VidMode
和我的一样,您可以在协议标头(或在xcb xml 规范) 该扩展名:
grep 'X_.*\<3\>' /usr/include/X11/extensions/xf86vmproto.h
#define X_XF86VidModeSwitchMode 3
在这种情况下,它是XF86VidModeSwitchMode(dpy, screen, zoom)
.
当然,编写该程序的人可以设置一个更好的 X11 错误处理程序,而不是那些code: hex
废话(默认的 X11 错误处理程序,至少对于较新的 X11 库来说,要好得多)。但这样的话,其中的乐趣在哪里呢?