VMWare WorkStation 中设置 OpenGL 版本
VMWare WorkStation 所虚拟的显卡具备3D加速能力,但其默认策略并不能完美处理所有情况。典型情况之一是,当虚拟机中运行 Creo 软件时,绘图区域会显示为黑色,且无法正常绘制。
猜测:原因可能是软件bug,也可能是物理机显卡确实支持不到那么高,但虚拟机内的驱动管不了那么多?
网上比较容易搜到是策略是在Creo中设置graphics
参数为win32_gdi
,改为使用WindowsGDI绘制。但这个方法一则完全放弃了3D加速,二则自Creo 4.0开始就不直接支持了。
经测试强行设置可以生效,但从配置管理器中“搜索”是找不到
graphics
这个选项的,再后面的版本会不会直接取消呢?
如果用GPU-Z
进行测试,可以发现起码自 VMWare 16.1,其虚拟的显卡默认支持OpenGL 4.1,版本不算太低了,是太低了吗?按理说Creo这种工业软件不会轻易舍弃老硬件。
于是,进一步搜索 VMWare + openGL 发现,VMWare 在 openGL 问题上其实是有前科的:
使用gazebo出现 openGL 相关问题,可以更改SVGA_VGPU10变量,在终端输入
export SVGA_VGPU10=0
,然后再运行gazebo相关的程序
显然,这是 Linux 的解决方案,于是测了一下,发现对于 Windows 是一样的,GPU-Z
在被传递了这个变量后,虚拟的显卡支持OpenGL 2.1,不再生成自己能支持 4.1 了。
在存在这个变量的情况下,VMWare 的 sVGA 驱动将汇报自己只支持 OpenGL 2.1,而不是 4.1,Creo 自然就不会按照 4.1 的接口去发送绘图请求,图形显示恢复正常,并且仍然是3D加速的。
至于性能,按理说可能会低一丢丢,但你都用虚拟机了,从物理显卡到虚拟显卡的开销都忍了,4.1 降级 2.1 这个损失是完全可以忽略不计的。