OpenGLを使用してヘッドレスハードウェアアクセラレーションサーバーレンダリングを実行する必要があり、これはpbufferとFBO(フレームバッファオブジェクト)を使用して達成できることがわかりました。しかし、今日、これらの方法にはまだコンテキストが必要であり、実行中のXサーバーなしでは実行できません。
私はタイトルで私がやりたいことを正確に行ったSunのプレゼンテーション(今は削除されましたが、Webアーカイブにあります)を見つけました。「GLP OpenGL拡張、WindowsシステムなしでOpenGLレンダリング」。
提案はどうなりましたか?現在、代替案があるか、同様の開発が進行中ですか?
答え1
最新バージョンのオープンソースLinux OpenGLドライバ(Mesa [1]で提供されているもの)は、Windowsシステムのないヘッドレスシステムでのレンダリングをサポートします。 Intel Mesaチーム(私が属している)はこの機能を使用して、XサーバーなしでヘッドレスコンピュータでOpenGLテストを実行します。
同僚と私は、libEGLのGBMバックエンドの上にWaffle [3]フレームワークを使用して、MesaのテストスイートPiglit [2]にヘッドレスレンダリングのサポートを追加しました。 (GBMはGeneric Buffer Managerの略で、中間ディスプレイサーバーなしでGPUバッファを管理するために使用されます。)
このアプローチを使用する場合、考えられる障害の1つは、私が知っている限り、GBMを含むEGLはオープンソースのLinuxドライバでのみサポートされていることです。アプリケーションが他のUnixまたは独自のドライバをサポートする必要がある場合、この方法は機能しません。
EGL / GBMの使用に興味がある場合は、いくつかのサンプルコードをお知らせください。
(しかし、EGLに慣れていない場合は、これはWindowsシステムに依存しないAPIでGLXを現代的に置き換えたものです。GLXに精通している場合は、2つのAPIが非常に似ているため、EGLはおなじみになります。)