Ubuntu 12.04 LTS 在 Windows7 下作为 VirtualBox Guest 运行时的 OpenGL 警告

ort*_*ang 8 nvidia virtualbox opengl 3d 12.04

一段时间以来,我一直在笔记本电脑上以访客身份使用 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
Run Code Online (Sandbox Code Playgroud)

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

来宾是最新的 12.04 LTS 安装,已安装来宾插件。

一些额外的信息,运行统一支持测试工具:

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
Run Code Online (Sandbox Code Playgroud)

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

我找到了一些链接,他们报告说 3D 加速在 12.04 来宾上运行良好,他们甚至在那里运行游戏而没有重大的性能损失。

我在 stackoverflow 上发现了一个类似的帖子,但它被关闭为题外话:

/sf/ask/1140125801/

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

小智 1

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

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


Bra*_*ask 0

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