【问题标题】:OpenGL GLUT on VirtualBox Ubuntu 11.10 segmentation faultVirtualBox Ubuntu 11.10 分段错误上的 OpenGL GLUT
【发布时间】:2012-03-18 16:18:03
【问题描述】:

免责声明: 我看到针对完全相同的问题提出了一些建议,但是(类似的)帖子已迁移到 SuperUsers 并且似乎已被删除。然而,我仍然想在这里发布我的问题,因为我认为它与软件/编程相关的程度足以不发布在 SuperUsers 上(有时什么是软件问题和什么是硬件问题之间的界限很模糊)。

我在 VirtualBox 中的 Code::Blocks 中运行一个非常简单的 OpenGL 程序,Ubuntu 11.10 安装在 SSD 上。每当我构建和运行程序时,我都会收到以下错误:

  • OpenGL 警告:XGetVisualInfo 为 0x232dbe0 返回 0 个视觉对象
  • OpenGL 警告:使用 0x802 重试返回 0 个视觉效果
  • 分段错误

从我目前收集到的信息来看,这与 VirtualBox 相关。我需要设置

  • LIBGL_ALWAYS_INDIRECT=1

换句话说,通过 X.org 启用间接渲染,而不是直接与硬件通信。这个问题可能与我拥有 ATI 卡这一事实无关,因为我有一台笔记本电脑,其 ATI 卡可以完美地运行相同的程序。

不过,我不敢说我​​的 GPU 是 ATI 这一事实根本没有任何作用。我也不确定驱动程序是否安装正确(它在系统信息 -> 图形 -> 图形驱动程序:Chromium 下显示。)

对于如何设置 LIBGL_ALWAYS_INDIRECT=1 的任何帮助将不胜感激。我只是不知道在哪里放置这个命令或在哪里/如何在终端中执行它。

来源:

编辑:在终端类型中:

export LIBGL_ALWAYS_INDIRECT = 1

验证直接渲染是否关闭:

glxinfo | grep direct

但是,问题仍然存在。我仍然会收到提到的 OpenGL 警告和分段错误。

【问题讨论】:

  • 在 VM 配置中,您的 3D 加速设置是什么?

标签: opengl segmentation-fault virtualbox ubuntu-11.10


【解决方案1】:

我在 VirtualBox 中的 Ubuntu 12.04 上运行 Bullet Physics OpenGL 演示时遇到了同样的问题。我没有使用间接渲染,而是通过修改源代码中的 glut 窗口创建代码来解决问题,如下所述:https://groups.google.com/forum/?fromgroups=#!topic/comp.graphics.api.opengl/Oecgo2Fc9Zc

这需要替换原来的

...
glutCreateWindow(title);
...

...
if (!glutGet(GLUT_DISPLAY_MODE_POSSIBLE))
{ 
    exit(1); 
}
glutCreateWindow(title);
...

如链接中所述。我不清楚为什么这应该纠正段错误问题;显然 glutGet 除了检索状态值之外还有一些副作用。这可能是 freeglut 实施 glut 的一个怪癖。

【讨论】:

    【解决方案2】:

    如果您查看/etc/environment 文件,您会看到其中公开了几个变量 - 这将使您了解如何在整个系统中公开该环境变量。您也可以根据需要尝试将其放入~/.profile~/.bash_profile

    我心中真正的问题是:您是否为 Ubuntu 安装了来宾插件?您不需要在来宾中安装任何 ATI 驱动程序,因为 VirtualBox 不会将实际的物理图形硬件暴露给您的 VM。您可以在“显示”部分下的虚拟机设置(确保先关闭 VM)中配置来宾以支持 3D 加速。您可能希望增加分配的虚拟内存 - 根据您的需要,64MB 或 128MB 应该足够了。

    【讨论】:

    • 我在一些备用 SSD 空间上进行了完整的全新安装 ubuntu,现在一切运行良好。似乎问题与Vbox有关。顺便说一句,我的图形内存为 128MB。不过,你是唯一一个回答并努力调查这个问题的人,因此我会接受这个答案。
    • 增加虚拟内存并将export LIBGL_ALWAYS_INDIRECT=1 添加到~/.bashrc 对我有用,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2011-12-22
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多