OSMesa: Difference between revisions

From Octave
Jump to navigation Jump to search
No edit summary
No edit summary
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
OSMesa is used since Octave 4.0 for offscreen rendering from OpenGL toolkits FLTK and Qt.
This enables printing without a X display, for example when ssh'ing to a remote machine, or if the figure is invisible ({{bug|33180}}).


= libOSMesa =
= libOSMesa =
Line 16: Line 20:
Needed for example for Debian wheezy or Ubuntu 12.04.5 which ships OSMesa 8.0.5.
Needed for example for Debian wheezy or Ubuntu 12.04.5 which ships OSMesa 8.0.5.


   wget -nc ftp://ftp.freedesktop.org/pub/mesa/current/MesaLib-10.2.2.tar.bz2
   wget -nc ftp://ftp.freedesktop.org/pub/mesa/current/mesa-10.5.4.tar.xz
   tar xjf MesaLib-10.2.2.tar.bz2
   tar Jxf mesa-10.5.4.tar.xz
   cd Mesa-10.2.2/
   cd mesa-10.5.4/
    
    
   autoreconf -fi
   autoreconf -fi
Line 44: Line 48:


Floating point textures are disabled by default due to patent restrictions. We should check if we can enable it with "--enable-texture-float"
Floating point textures are disabled by default due to patent restrictions. We should check if we can enable it with "--enable-texture-float"
== known problems ==
Unfortunately, there are several known problems with using on-screen Mesa and OSMesa at the same time.
The --without-OSMesa configure can be used to disable OSMesa if a problem is encountered.
* {{bug|44478}} segmentation fault when using proprietary Nvidia drivers
* {{bug|44979}} clumsy/missing configure check, relies on runtime failure
* {{bug|44338}} doesn't work at all on Windows
* [https://bugs.launchpad.net/bugs/1424059 LP #1424059] libosmesa6 is not installable on Ubuntu 14.04 with HWE updates
* {{bug|50479}} doesn't work at all with libglvnd, now standard in most distributions
=== workarounds ===
* Preload the Mesa libGL.so, for example
  export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGL.so
== Reporting Bugs ==
* Please include the output of
  glxinfo | grep "^OpenGL \(renderer\|core profile version\|vendor\)"

Latest revision as of 08:55, 18 November 2017

OSMesa is used since Octave 4.0 for offscreen rendering from OpenGL toolkits FLTK and Qt.

This enables printing without a X display, for example when ssh'ing to a remote machine, or if the figure is invisible (#33180).


libOSMesa[edit]

The minimum required version of OSMesa for Octave is 9.0.0. Versions < 9.0 show a strange bug where the return values of

 glGetIntegerv (GL_DEPTH_BITS, &z);
 glGetIntegerv (GL_STENCIL_BITS, &s);
 glGetIntegerv (GL_ACCUM_RED_BITS, &a);

contain arbitrary values and the rendered buffer is garbage. This only happens if OSMesa is linked together with Octave, standalone OSMesa examples works fine.

On Debian GNU/Linux 8.0 (jessie), Ubuntu 14.04 (trusty) and Fedora 21 there is no need to build OSMesa from source, just use your package manager which installs libosmesa > 10.0.

Build libOSMesa from source[edit]

Needed for example for Debian wheezy or Ubuntu 12.04.5 which ships OSMesa 8.0.5.

 wget -nc ftp://ftp.freedesktop.org/pub/mesa/current/mesa-10.5.4.tar.xz
 tar Jxf mesa-10.5.4.tar.xz
 cd mesa-10.5.4/
 
 autoreconf -fi
 
 ./configure \
   CXXFLAGS="-O2 -g -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
   CFLAGS="-O2 -g -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
   --disable-xvmc \
   --disable-glx \
   --disable-dri \
   --with-dri-drivers="" \
   --with-gallium-drivers="" \
   --disable-shared-glapi \
   --disable-egl \
   --with-egl-platforms="" \
   --enable-osmesa \
   --enable-gallium-llvm=no \
   --prefix=/usr/local/mesa/10.2.2/classic
 make -j4
 # optional
 make check
 sudo make install

Floating point textures[edit]

Floating point textures are disabled by default due to patent restrictions. We should check if we can enable it with "--enable-texture-float"

known problems[edit]

Unfortunately, there are several known problems with using on-screen Mesa and OSMesa at the same time. The --without-OSMesa configure can be used to disable OSMesa if a problem is encountered.

  • #44478 segmentation fault when using proprietary Nvidia drivers
  • #44979 clumsy/missing configure check, relies on runtime failure
  • #44338 doesn't work at all on Windows
  • LP #1424059 libosmesa6 is not installable on Ubuntu 14.04 with HWE updates
  • #50479 doesn't work at all with libglvnd, now standard in most distributions

workarounds[edit]

  • Preload the Mesa libGL.so, for example
 export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGL.so

Reporting Bugs[edit]

  • Please include the output of
 glxinfo | grep "^OpenGL \(renderer\|core profile version\|vendor\)"