有没有办法在无头机器上使用使用硬件加速 OpenGL 的应用程序?

Posted

技术标签:

【中文标题】有没有办法在无头机器上使用使用硬件加速 OpenGL 的应用程序?【英文标题】:Is there a way to use application that use hardware accelerated OpenGL on a headless machine? 【发布时间】:2011-08-22 22:27:42 【问题描述】:

存在一类使用 opengl 提供硬件加速但不基于 GUI 的应用程序。然而,在默认情况下,要使用 opengl,似乎必须运行带有 GLX 的 X 服务器(在同一个虚拟终端上),这些应用程序才能运行。

我的具体案例是尝试在无头机器上使用 gstreamer 的 gl 插件,但我问的是更一般的问题。

有没有办法解决这个问题(尤其是不修改原始代码)?

我一直在尝试使用 framebuffer 内核模块进行研究,但没有走得太远。

【问题讨论】:

嘿!您是否能够找到解决方案?如果您能推荐一些支持OpenGL硬件加速的云服务也很好? 【参考方案1】:

Mesa 支持software rasterization on offscreen surfaces。

【讨论】:

这种方式违背了使用硬件加速 api 的目的。 @Catskul,台面支持硬件加速。 @J-16:该链接特别提到了软件光栅化,这显然不会被硬件加速。 @J-16 据我了解,Mesa 仅支持硬件加速,它是硬件驱动程序本身。不过,诚然,我的知识在这里很薄弱。 @Catskul 实际上,Mesa 可以在硬件上执行 X-less、硬件加速的屏幕外 OpenGL,它还实现了通常的 OSS 驱动程序。虽然整个事情在很大程度上是实验性的。【参考方案2】:

你试过Xvfb吗?

【讨论】:

我没有。不知道它是否支持3d加速? @Catskul:对不起,我没有。无论如何,它显然不会是加速——它必须是一个软件实现。 理论上它可以利用现有硬件,如果可用的话,不是吗? @Catskul:理论上,但我不认为它那么聪明。 @caf:Xvfb 不会给你硬件加速。

以上是关于有没有办法在无头机器上使用使用硬件加速 OpenGL 的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

Win32:是不是有使用硬件加速的替代 GDI32.dll?

Firefox 无头在无头 redhat linux 机器上崩溃

有没有办法在无头模式下运行 QtWebEngine

Eclipse CDT 无头构建问题

有没有办法创建一个硬件实现的高级语言解释器?

复制粘贴不适用于 python selenium 中的无头浏览器