2016-07-24 179 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客戶端分配屏幕外幀緩衝器的方式也值得看着。