I need to do headless hardware accelerated server rendering using OpenGL and found out that this is possible with pbuffers and frame buffer objects (FBO). But today these approaches still need a context and can't run without a running X server.

1 Answer
1

Recent versions of opensource Linux OpenGL drivers (that is, drivers provided by Mesa [1]) support rendering on headless machines without a window system. The Intel Mesa team (to which I belong) uses this feature to run OpenGL tests on headless machines with no X server.

A coworker and I added the support for headless rendering to Mesa's testsuite, Piglit [2], by using the Waffle [3] framework atop libEGL's GBM backend. (GBM stands for Generic Buffer Manager, and is used to manage GPU buffers without an intermediary display server).

A possible showstopper, if you wish to pursue this approach, is that to my knowledge EGL with GBM is only supported by opensource Linux drivers. If your appplication must support another Unix or proprietary drivers, this approach won't work.

If you're interested pursuing using EGL/GBM, I can point you to some example code.

(By the way, if you're unfamiliar with EGL, it's a modern replacement for GLX whose API is independent of window system. If you're comfortable with GLX, then you should feel at home with EGL because the two API's are very similar).

Chadversary answered two of the three questions (are there any alternatives? similar developments today?), for the other one (What happened to GLP?) I have old private mail from one of the Sun engineers involved in which he said they proposed GLP to the OpenGL ARB, but the ARB chose EGL to standardize on instead.
–
alancJan 22 '13 at 7:24

This sounds quite interesting, although I probably can't use it because it would run in a production environment on Nvidia cards and from the description of the nouveau drivers it seems they aren't as stable as the proprietary ones.
–
neoJan 22 '13 at 14:25