我正在尝试在虚拟机中编写一些openFrameworks(C ++)代码。我的主机是Windows 8,我已经尝试过Arch Linux和Ubuntu客户端。我的主机电脑使用NVidia Optimus设置和8GB RAM可以很好地运行图形代码。
我主要在Visual Studio中进行开发,但我更喜欢从Linux创建Android并进行测试。因此,我只想启动虚拟机并处理业务。问题是,我的一些图形应用程序需要OpenGL 3+。
是否有其他人遇到了同样的问题并解决了它?
我正在尝试在虚拟机中编写一些openFrameworks(C ++)代码。我的主机是Windows 8,我已经尝试过Arch Linux和Ubuntu客户端。我的主机电脑使用NVidia Optimus设置和8GB RAM可以很好地运行图形代码。
我主要在Visual Studio中进行开发,但我更喜欢从Linux创建Android并进行测试。因此,我只想启动虚拟机并处理业务。问题是,我的一些图形应用程序需要OpenGL 3+。
是否有其他人遇到了同样的问题并解决了它?
虽然我来晚了,但希望对那些遇到类似问题的人有所帮助:
现在Mesa软件渲染器支持OpenGL 4.5,所以我的解决方案是在VirtualBox机器的设置中禁用3D加速!然后Mesa软件OpenGL支持接管并提供其功能。它肯定不是很快,但对于我的目的(测试OpenGL应用程序在Linux下是否启动并显示内容),它已经足够了!
在Fedora 34和Ubuntu 20.04上进行了测试。
MESA_GL_VERSION_OVERRIDE=3.0 MESA_GLSL_VERSION_OVERRIDE=130
。某些OpenGL3函数可能会起作用,但并非全部都会。我使用它来启动Civ5,动画没有显示出来,屏幕上的字体也没有显示出来。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直通:既要蛋糕又要吃掉”的线程。该线程太长了,但希望对某些人有所帮助。