15.4.8.2 Hardware vs Software Rendering

On some platforms, it is possible to choose between hardware (GPU-accelerated) and software (CPU-based) OpenGL rendering through the use of the Mesa 3D software implementation. The choice between hardware or software rendering only affects the OpenGL graphics toolkits ("qt", "fltk"). Using software rendering can avoid rendering and printing issues due to the imperfect OpenGL driver implementations of diverse graphic cards from different vendors (notably integrated Intel graphics). The downside is that software rendering may be considerably slower than hardware-accelerated rendering.

On Linux and MacOS systems that have a Mesa 3-D based driver, switching to software rendering is done at Octave startup (or at least before any graphics function has been called) by setting the environment variable LIBGL_ALWAYS_SOFTWARE, e.g., setenv ("LIBGL_ALWAYS_SOFTWARE", "1").

On Windows, Octave is shipped with opengl32.dll, a Mesa 3-D based software rendering library. When using the Windows installer for Octave, the user has the option to select between "System OpenGL" and "Software OpenGL" renderers. The OpenGL driver may also be switched later using the "OpenGL Switcher" application from the Start menu while Octave is closed. Alternatively, one can rename the following file while Octave is closed:

octave-home\bin\opengl32.dll

where octave-home is the directory returned by OCTAVE_HOME, i.e., the directory in which Octave is installed (the default is C:\Program Files\GNU Octave\Octave\Octave-version\mingw64). Change the file extension to .bak for hardware rendering or to .dll for software rendering.