Comment 43 for bug 1742894

Revision history for this message
In , Brianp-h (brianp-h) wrote :

Sergio, I installed the 30-day trial of Matlab r2017b and typed 'opengl info' in the command window. I did not get a java exception. I got an error message that reads:

"""
MATLAB has experienced a low-level graphics error, and may not have drawn correctly.
Read about what you can do to prevent this issue at Resolving Low-Level Graphics Issues then restart MATLAB.
To share details of this issue with MathWorks technical support,
please include this file with your service request.
"""

I don't see that issue when using NVIDIA's driver.

I used apitrace to create a trace of Matlab's GL calls with llvmpipe and with NVIDIA's linux driver. It looks like Matlab begins by trying to find the highest supported GL version of the core profile. With NVIDIA's driver it finds 4.5. With llvmpipe it finds 3.3.

Then, it also tries to create compatibility profile context. With NVIDIA's driver it again gets a 4.5 context. With llvmpipe, we don't have such profiles and Matlab stops after getting a GL 3.1 context.

Finally, with llvmpipe, Matlab tries to create a 3.3 compatibility profile and fails. It then successfully creates a legacy context with glXCreateNewContext(). It calls glGetIntegerv(GL_MAJOR/MINOR_VERSION) then destroys the context.

As far as I an tell, Matlab simply doesn't accept llvmpipe's context/version offerings. Either that's by design or there's some sort of logic bug in MatLab that gives up on GL support after failing to create a particular kind of context.

You could try installing some older versions of Mesa to see if Matlab 2016a works/fails. But Matlab 2017b seems to act differently.