有没有一种虚拟机可以支持OpenGL 3+?VirtualBox和VMware不支持。

6

我正在尝试在虚拟机中编写一些openFrameworks(C ++)代码。我的主机是Windows 8,我已经尝试过Arch Linux和Ubuntu客户端。我的主机电脑使用NVidia Optimus设置和8GB RAM可以很好地运行图形代码。

我主要在Visual Studio中进行开发,但我更喜欢从Linux创建Android并进行测试。因此,我只想启动虚拟机并处理业务。问题是,我的一些图形应用程序需要OpenGL 3+。

是否有其他人遇到了同样的问题并解决了它?


1
是的,VirtualBox 的默认 GPU 驱动程序不提供如此高的 OpenGL 特性级别。您可以尝试启用 3D GPU 加速并下载 VirtualBox 扩展包(或称为其他名称)。这可能有所帮助,但通常来说,“在虚拟机中进行 GPU 操作” 是不可取的,而且通常效果很差。 - PeterT
3个回答

5
放弃使用VirtualBox。VB的OpenGL客户机支持在2.1时会出现问题,仅在通过命令行安装VB Guest Additions并添加一些注册表键以实际启用OpenGL客户机驱动程序后才能正常工作。
如果你愿意花钱,VMware Fusion适用于Mac,VMware Workstation适用于Windows,两者都支持DirectX 10和OpenGL 3.3。

很高兴知道VMware在Mac上表现良好。 在OpenGL方面,它是否比Parallels更好? - KcFnMi
@KcFnMi Parallels 只支持 OpenGL 2.1 及以下版本。 - prapin

4

虽然我来晚了,但希望对那些遇到类似问题的人有所帮助:

现在Mesa软件渲染器支持OpenGL 4.5,所以我的解决方案是在VirtualBox机器的设置中禁用3D加速!然后Mesa软件OpenGL支持接管并提供其功能。它肯定不是很快,但对于我的目的(测试OpenGL应用程序在Linux下是否启动并显示内容),它已经足够了!

在Fedora 34和Ubuntu 20.04上进行了测试。


3
尝试使用VirtualBox,并在您的Linux命令行前加上MESA_GL_VERSION_OVERRIDE=3.0 MESA_GLSL_VERSION_OVERRIDE=130。某些OpenGL3函数可能会起作用,但并非全部都会。我使用它来启动Civ5,动画没有显示出来,屏幕上的字体也没有显示出来。
如果您想查看源代码:
VirtualBox使用的是Chromium 1.9,即OpenGL 2.1。可以通过glxinfo命令进行验证。使用以下命令跟踪VirtualBox OpenGL库文件:
$ ldd /usr/bin/glxinfo
$ apt-file search /usr/lib/x86_64-linux-gnu/libGL.so.1.2
$ LIBGL_DEBUG=verbose glxinfo

然后跟随链接:
$ ls -l x86_64-linux-gnu/dri/
lrwxrwxrwx Apr 14 2014 vboxvideo_dri.so -> ../../VBoxOGL.so

$ apt-file search /usr/lib/VBoxOGL.so
virtualbox-dbg: /usr/lib/debug/usr/lib/VBoxOGL.so
virtualbox-guest-x11: /usr/lib/VBoxOGL.so

$ dpkg -l virtualbox*
ii virtualbox-guest-x11 4.1.18-dfsg-2+deb7 amd64

$ apt-file list virtualbox-guest-x11
...

源代码tarball是从trusty仓库中获取的virtualbox-4.3.10-dfsg.orig.tar.gz。版本字符串可以在源代码目录中通过$ grep -r CR_OPENGL_VERSION_STRING *$ grep -r CR_VERSION_STRING *命令获得。

更新于2017年6月1日:有人告诉我kvm适用于文明5。快速搜索找到了一个标题为“使用KVM进行GPU直通:既要蛋糕又要吃掉”的线程。该线程太长了,但希望对某些人有所帮助。


请澄清一下您所说的“prepend MESA_GL_VERSION_OVERRIDE”的含义是什么。 - AlastairG
在你的命令行前面添加。例如,如果你通常运行"civ5",现在是"MEASA_GL... civ5"。 - minghua

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接