【问题标题】:X11 error BadRequest when running OpenGL applications运行 OpenGL 应用程序时出现 X11 错误 BadRequest
【发布时间】:2011-04-16 13:03:00
【问题描述】:

我为我正在为 ARM 设备构建的自定义 Linux 编译了 Xorg。我正在尝试使用 EGL 和 Qt 框架运行 OpenGL 应用程序,但出现以下错误:

X Error: BadRequest (invalid request code or no such operation) 1
Extension: 198 (Uknown extension)
Minor opcode: 0 (Unknown request)
Resource id: 0x600082

还有这个:

X Error: BadRequest (invalid request code or no such operation) 1
Extension: 160 (Uknown extension)
Minor opcode: 0 (Unknown request)
Resource id: 0x600082

重复了很多次。这是什么意思?我如何调查出了什么问题?使用 OpenGL 在屏幕上正确绘制了一些东西,但之后一切都搞砸了。 我的 Xorg 中似乎缺少某些内容,但我找不到关于这些扩展 198 和 160 的任何信息。如何找出缺少的内容或有什么问题?我是否必须编译任何特定的东西才能为 X11 运行 OpenGL 应用程序? 谢谢!

【问题讨论】:

    标签: qt x11 opengl-es-2.0


    【解决方案1】:

    扩展号码由 X 服务器根据特定代码库支持的扩展动态分配,并在特定配置中启用。要在当前显示上获取扩展名到号码映射的列表,您可以运行xdpyinfo -queryExtensions | grep opcode — 为每个列出的操作码值应与 Xlib 错误报告中的扩展号匹配。如果没有一个扩展匹配,那么您可能有内存损坏或在没有首先验证它当前在 X 服务器中可用的情况下调用扩展。

    【讨论】:

    • 这很有用!谢谢!是否有所有扩展及其操作码的列表?以便我可以尝试了解可能缺少的内容?
    • 请重新阅读我给出的答案。不能有一个带有操作码的扩展列表,因为正如我所说,操作码是动态分配的。渲染扩展在我的 X 服务器上可能有操作码 132,在你的服务器上可能有 140,这取决于扩展的初始化顺序以及哪些被初始化或被禁用。
    • 你是对的,对不起。你的回答很明确。无论如何,我可能已经通过重新编译 Qt 来支持几乎所有的 X 扩展,然后为 X 显式启用多线程来解决这个问题。看起来该应用程序正在与主线程之外的 OpenGL 一起工作。现在问题似乎解决了。我不知道这两个动作是否是强制性的。感谢您的帮助!
    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多