在 Windows7 下以 VirtualBox Guest 方式运行 Ubuntu 12.04 LTS 时出现 OpenGL 警告

在 Windows7 下以 VirtualBox Guest 方式运行 Ubuntu 12.04 LTS 时出现 OpenGL 警告

我已经在笔记本电脑上使用 12.04 作为客户端一段时间了,它运行得很完美。

今天,一位同事问我客户机的 3D 性能。我从来没想过在客户机上使用花哨的 3D 功能,但我对结果很感兴趣,所以我3D acceleration在安装的 VirtualBox 菜单中启用了它并重新启动了虚拟机。

运行时glxgears会发出奇怪的警告,而且窗户上有旋转的齿轮保持黑色(我在下面发布了控制台输出)。

跑步glxgears 没有启用 3D 加速后,最终得到了 ~570 FPS 并且没有警告。

低 FPS 不是我的问题,但黑色的 glxgears 窗口很奇怪。我猜是主机系统的 nVidia 驱动程序出了问题?(查看NV警告的后缀)

ortang@vbox-12-04:~$ glxgears 
OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table
OpenGL Warning: glVertexArrayRangeNV not found in mesa table
OpenGL Warning: glCombinerInputNV not found in mesa table
OpenGL Warning: glCombinerOutputNV not found in mesa table
OpenGL Warning: glCombinerParameterfNV not found in mesa table
OpenGL Warning: glCombinerParameterfvNV not found in mesa table
OpenGL Warning: glCombinerParameteriNV not found in mesa table
OpenGL Warning: glCombinerParameterivNV not found in mesa table
OpenGL Warning: glFinalCombinerInputNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glDeleteFencesNV not found in mesa table
OpenGL Warning: glFinishFenceNV not found in mesa table
OpenGL Warning: glGenFencesNV not found in mesa table
OpenGL Warning: glGetFenceivNV not found in mesa table
OpenGL Warning: glIsFenceNV not found in mesa table
OpenGL Warning: glSetFenceNV not found in mesa table
OpenGL Warning: glTestFenceNV not found in mesa table
369 frames in 5.0 seconds = 73.647 FPS

主机是一台 Windows 7(64 位)戴尔笔记本电脑(Precision E4600),配有i7-2820QMCPU 和nVidia Quadro 2000M(驱动程序版本 311.10)显卡。

该客户机是最新的 12.04 LTS 安装,并安装了客户机插件。

一些附加信息,运行 Unity 支持测试工具:

ortang@vbox-12-04:~$ /usr/lib/nux/unity_support_test -p
OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table
OpenGL Warning: glVertexArrayRangeNV not found in mesa table
OpenGL Warning: glCombinerInputNV not found in mesa table
OpenGL Warning: glCombinerOutputNV not found in mesa table
OpenGL Warning: glCombinerParameterfNV not found in mesa table
OpenGL Warning: glCombinerParameterfvNV not found in mesa table
OpenGL Warning: glCombinerParameteriNV not found in mesa table
OpenGL Warning: glCombinerParameterivNV not found in mesa table
OpenGL Warning: glFinalCombinerInputNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glDeleteFencesNV not found in mesa table
OpenGL Warning: glFinishFenceNV not found in mesa table
OpenGL Warning: glGenFencesNV not found in mesa table
OpenGL Warning: glGetFenceivNV not found in mesa table
OpenGL Warning: glIsFenceNV not found in mesa table
OpenGL Warning: glSetFenceNV not found in mesa table
OpenGL Warning: glTestFenceNV not found in mesa table
OpenGL vendor string:   Humper
OpenGL renderer string: Chromium
OpenGL version string:  2.1 Chromium 1.9

Not software rendered:    yes
Not blacklisted:          yes
GLX fbconfig:             yes
GLX texture from pixmap:  yes
GL npot or rect textures: yes
GL vertex program:        yes
GL fragment program:      yes
GL vertex buffer object:  yes
GL framebuffer object:    yes
GL version is 1.4+:       yes

Unity 3D supported:       yes

GUI 运行流畅,但是我没有激活任何花哨的东西(全部默认)。

我发现一些链接,他们报告说 3D 加速在 12.04 客户机上运行良好,他们甚至在那里运行游戏而没有重大的性能损失。

我在 stackoverflow 上找到了一个类似的帖子,但是由于偏离主题而被关闭了:

https://stackoverflow.com/questions/16287511/opengl-warnings-after-enabling-3d-acceleration-in-virtual-box-running-ubuntu-12

任何能解决该问题的提示都很好!

答案1

Guest Additions 软件包中的视频驱动程序仅仅是客户操作系统和主机视频驱动程序之间的代理(有一些限制,例如 16(可修改)MB 的 VRAM)。这意味着即使操作系统使用更新的 NVidia 驱动程序运行,也可能会弹出相同的错误(您可以使用专有驱动程序-- 要安装它们,只需从 shell 执行 .run 文件)或者,也许只有没有更新的驱动程序。

Windows 7 可能不包含(至少我猜不包含)真正的 NVidia 驱动程序,但最多包含兼容但功能较弱的驱动程序(如最初在 Ubuntu 上找到的驱动程序)。如果是这样,您必须更新主持人来自的司机这里

答案2

您是否在虚拟机上安装了 Virtualbox Guest Additions 工具?机器运行后,转到显示设备的菜单选项卡,转到菜单上的最后一个选项,然后按“插入带有 Gest Additions 的 CD”选项,您将看到 CD 在操作系统内启动,安装驱动程序,您将获得更好的性能,希望它有所帮助。

相关内容