2016-07-24 318 views
0

目前我正在使用OSMesa进行离屏渲染。我正在linux(RHEL)命令行界面上运行它。它工作得很好,但渲染耗费大量时间。基本上我运行opengl动画离屏和动态捕捉帧,并使用ffmpeg创建视频。所以,我的问题是,是否有可能使用GPU进行离屏渲染,以使渲染过程更快。 我知道我可以使用FBO,但我认为他们需要窗口支持,我没有Linux CLI。 简而言之,在我的例子中是否有使用FBO或者加速渲染过程的最佳解决方案?支持GPU的离屏渲染但没有窗口支持

回答

1

所以,我的问题是,是否有可能使用GPU进行离屏渲染以使渲染过程更快。

原则上是的,但到目前为止没有关于如何解决这个问题的标准API。如果您使用NVidia GPU,则可以使用Nvidia专有驱动程序的无头EGL:https://devblogs.nvidia.com/parallelforall/egl-eye-opengl-visualization-without-x-server/

使用内核DRM和Mesa OpenGL驱动程序,可以在不使用显示服务器的情况下在单个进程中配置和操作GPU。有一个名为“kmscube”的演示,我将其分叉到我的GitHub中,并对其进行了一些小修改:https://github.com/datenwolf/kmscube在当前状态下,kmscube将绘制到屏幕上,但应该可以通过某种方式更改连接器的选择,你会得到全屏幕外渲染。

此外,整个Wayland基础设施的重点在于为客户提供任意帧缓冲区以呈现给该合成器,然后将合成器合并,从而查看Wayland合成器如何为Wayland客户端分配屏幕外帧缓冲器的方式也值得看着。