【问题标题】:Programming OpenGL 3+ in virtualized linux with software rendering使用软件渲染在虚拟化 Linux 中编程 OpenGL 3+
【发布时间】:2013-11-09 11:54:41
【问题描述】:

使用 VMware 10 和 ubuntu 13.10 作为客户操作系统。

安装来宾添加可以为 OpenGL 2.1 提供硬件渲染

出于学术目的,需要开发和运行 OpenGL 3+ 代码,最好在虚拟机中。

我假设无法使用主机 GPU,所以我尝试使用 OpenGL 3+ 渲染器强制软件渲染。

Mesa3D + llvmpipe 看起来很有希望,但我无法找到有关软件渲染器是否支持 OpenGL 3+ 的信息。

有没有办法在vmware下开发OpenGL 3+?

编辑:(对于回复然后删除他们的帖子的人:p)

是的,我也看到使用 glxinfo 的 OpenGL 2.1。我在我的虚拟机中删除了硬件加速,并且只对软件光栅化感兴趣,即使它真的很慢。问题是,是否有 llvmpipe 版本为高于 2.1 的 OpenGL 版本实现软件光栅化器?我知道 mesa3d 支持它,尽管只适用于硬件。

【问题讨论】:

  • 已删除,因为我对您的问题没有任何补充。看来您现在需要使用 2.1 或不使用 vm。

标签: linux vmware opengl-3


【解决方案1】:

台面软件渲染器(“旧的”pre-gallium swrast 和“新的”gallium softpipe/llvmpipe)确实支持大部分的 GL3.2。唯一缺少的主要是对多重采样的支持,因此他们没有宣传完整的 3.0 支持。

2017 年更新

mesa 的各种软件光栅化器的当前版本现在确实声称在核心配置文件中支持最高 GL 3.3。 (可以在https://mesamatrix.net/ 上跟踪进度)。但是,有一个警告,如 mesa 的 feature.txt 中所述:

freedreno、llvmpipe、softpipe 和 swr 具有虚假的 Multisample 抗锯齿支持

这意味着它们仍未满足 GL 3.0 规范的要求。然而,在大多数情况下,这在实践中并不重要。但是人们仍然应该意识到这种限制。

【讨论】:

  • 感谢您的回答。到目前为止,我在 opengl 中尝试的大部分内容都已编译并正常运行,因此您很可能是正确的。
  • 我接受了这个作为答案,因为课程现在已经结束,所需的一切都在 vm 中正确呈现。对于其他人:这并不能保证一切都能正常工作,只是我尝试过的基础知识。
  • 较新的 Mesa 增加了对更多功能的支持,现在宣传核心 3.3 和 OpenGL ES 3.0 支持。从我没有启用硬件加速的虚拟机:OpenGL 核心配置文件版本字符串:3.3(核心配置文件)Mesa 17.1.1 OpenGL 版本字符串:3.0 Mesa 17.1.1 OpenGL ES 配置文件版本字符串:OpenGL ES 3.0 Mesa 17.1.1
  • @wvdschel:谢谢。我确实更新了我的答案。然而,事实是情况并没有太大变化。它们现在支持大部分 GL3.3,但仍未实现多重采样。他们现在使用假实现,并声称支持 3.x...
【解决方案2】:

如果有人仍然感兴趣,VMWare Workstation(Workstation Pro 和 Workstation Player)在版本 12 中添加了 OpenGL 3.3 支持。

但是,在撰写本文时,Linux 来宾驱动程序方面尚未提供,并且计划用于 Linux 4.3。

所以:使用 VMWare Workstation Player(或 Pro,如果有的话)版本 12 或更高版本,以及 Linux 4.3 或更高版本。

更新:使用没有任何加速和 Mesa LLVMpipe 的 VirtualBox,我还获得了 OpenGL 3.3 支持(Mesa 版本是 17.1.1)

【讨论】:

  • 感谢您的意见!尽管我不再日常使用 OpenGL,但当我看到 VMWare 12 将支持 3.3 的公告时,我就想到了这一点。我尚未测试支持,但很快就会这样做,并更新我的答案以供将来参考。
猜你喜欢
  • 1970-01-01
  • 2022-01-16
  • 2013-11-27
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多