[Mesa-users] OSMesa problems with proprietary NVIDIA 304 drivers on Debian Jessie

Andreas Weber octave at tech-chat.de
Sat May 16 02:13:00 PDT 2015

Hi Brian, thank you for your answer.

On 15.05.2015 16:35, Brian Paul wrote:
> On 05/14/2015 03:13 PM, Andreas Weber wrote:
>> Dear users and maintainers,
>> we want to use OSMesa for offscreen rendering in the upcoming GNU Octave
>> 4.0 release. Unfortunately I'm facing some unecpected problems when
>> using proprietary NVIDIA 304 legacy drivers (it works fine if switching
>> to nouveau or on machines with AMD or Intel GPU).
> Just to be clear, OSMesa does not work with nvidia's driver/hardware (or
> any other GPU).  The OSMesa interface only works with software rendering
> (swrast, softpipe, llvmpipe).  If you want to do offscreen rendering
> with a hardware GPU, the easiest approach is to use framebuffer objects.

I would like to be able to render OpenGL to a bitmap or, using gl2ps, to 
PostScript without needing a X display or even a hardware GPU (aka 
headless server).

I'm not familiar with the Mesa or OpenGL internals so my question might 
sound naive but how can I force a program to use swrast, softpipe or 
llvmpipe? I tired setting LIBGL_ALWAYS_SOFTWARE=1 but apparently this 
doesn't work if the Nvidia drivers are installed. And why does osdemo 
work even if Nvidia drivers are installed but Octave not? Some compile 
or linker flags?

>> The problem is that the generated image is almost black and values
>> queried with glGetIntegerv contains arbitray values, for example
>> ...
> My guess is you're calling glGetIntegerv() without having a current
> rendering context.  The values you're getting are probably the
> uninitialized values of z, s, ar, etc.

Yes, you are right this was the reason. I though if OSMesaContext and 
OSMesaCreateContextExt return without error I can assume that there is a 
current rendering context.

-- Andy

More information about the mesa-users mailing list