MATLAB: Resolving low-level graphics issues in MATLAB

crasherrorgraphicsMATLABopengl

This post is a summary about how to resolve graphics issues which could potentially be caused due to old graphics hardware or outdated graphics drivers.
These issues could occur while creating 2-D or 3-D charts, using a Simulink model that contains scopes, or using GUIs from a MathWorks toolbox.
The steps mentioned in this article serve as debugging steps, as well as potential solutions for graphics-related issues, and should be tried out when experiencing unexpected behavior.

Best Answer

1) Use Software OpenGL Instead (Windows and Linux Only)
You can work around many graphics issues by using the software version of OpenGL built into MATLAB instead of using your graphics hardware.
In some cases, MATLAB automatically switches to software OpenGL, for example, if it detects known issues such as outdated drivers or graphics virtualization. Software OpenGL does not support some graphics features, such as graphics smoothing.
To determine if you are using hardware or software OpenGL, type:
>> opengl info
The returned information contains the line:
  • "Software: 'false'" if you are using hardware OpenGL, or
  • "Software: 'true'" if you are using software OpenGL.
To switch from hardware to software OpenGL, start MATLAB from the command prompt or terminal on your system using this command:
matlab -softwareopengl
To set your preferences so that MATLAB always starts with software OpenGL on this computer, execute this command at the MATLAB command line:
>> opengl('save','software')
These commands work only on Windows and Linux systems. Macintosh systems do not support software OpenGL. For more information about switching between hardware and software OpenGL, see the documentation for opengl and the Renderer property for figures.
 
2) Use OpenGL Compliant Graphics Hardware
For the best results with graphics, use graphics hardware that is compliant with OpenGL 2.1 or later. For more information about the graphics features that different versions of OpenGL support, see System Requirements for Graphics.
 
3) Upgrade Your Graphics Hardware Drivers
Graphics hardware vendors frequently provide updated graphics drivers that improve hardware performance. To help ensure that your graphics hardware works with MATLAB, upgrade your graphics drivers to the latest versions available.
Check your computer manufacturer website for driver updates, for example, Dell or HP. If no updates are provided, then check your graphics hardware vendor website, such as one of the vendors listed here. To determine your vendor, type
>> opengl info
and check the "Vendor" field.
Alternatively, you may be able to check your driver vendor and versions outside of MATLAB. On Windows systems, enter dxdiag into the Command Prompt, and look at the "Display" tab. Certain Linux distributions will allow you to use glxinfo in the Terminal to see OpenGL and driver information.
If you saved a setting to always start MATLAB with software OpenGL, then after updating your drivers, you can revert that setting by executing:
>> opengl('save','hardware')
Then restart MATLAB.
 
4) Contact Technical Support
If you cannot resolve the issues using the options described here, then you might have encountered a bug in MATLAB. Please contact MathWorks Technical Support and provide the following information:
  • Output of executing "opengl info"
  • Whether your code runs without error when using software OpenGL.
  • Whether your code runs without error on a different computer. Please provide the output of opengl info for all computers you have tested your code on.
  • Some error messages contain a link to a file with details about the graphics error you encountered. If a link to this file is provided, please include this file with your service request.
  • The full text of the error that appears. If a crash occurs, please provide the crash report generated by MATLAB.