目前,我正在使用OSMesa进行屏幕外渲染。我正在linux (RHEL)命令行接口上运行它。它工作得很好,但是渲染需要花费大量的时间。基本上,我在屏幕外运行opengl动画,动态捕捉帧,并使用ffmpeg创建一个视频。所以,我的问题是,是否可以使用GPU进行屏幕外渲染,以使渲染过程更快。我知道我可以使用FBO,但我认为它们需要窗口支持,而由于linux,我没有这种支持。总之,在我的例子中是否有使用FBO的方法,或者什么是加快呈现过程的最佳解决方案?
发布于 2016-07-24 09:13:19
所以,我的问题是,是否可以使用GPU进行屏幕外渲染,以使渲染过程更快。
原则上是的,但是到目前为止还没有一个关于如何做的标准API被确定下来。如果您使用的是NVidia图形处理器,您可以在Nvidia专有驱动程序中使用无头EGL:https://devblogs.nvidia.com/parallelforall/egl-eye-opengl-visualization-without-x-server/
使用内核DRM和Mesa OpenGL驱动程序,可以在没有显示服务器的单个进程中配置和操作GPU。有一个名为“kms多维数据集”的演示程序,我将它分叉到我的GitHub中,并对它做了一些小的修改:当前状态下的https://github.com/datenwolf/kmscube将绘制到屏幕上,但是应该可以以某种方式更改连接器的选择,从而获得完全的屏幕外呈现。
而且,整个Wayland基础设施的中心是给客户端提供任意的框架缓冲区来呈现,然后组合,所以看看Wayland作曲家如何为Wayland客户端分配屏幕外帧缓冲区的方式也是值得研究的。
https://stackoverflow.com/questions/38549928
复制相似问题