OpenGL Rendering in Matlab R2024b on Ubuntu LTS 24.04 fails: com.jogamp.opengl.GLException: X11GLXDrawableFactory – Could not initialize shared resources for …
This error message means that 3D accelerated OpenGL rendering does not work. On same hardware R2024a didn’t even try OpenGL, so this is a new problem. This applies to R2024b running on Ubuntu LTS 24.04 on at least two different hardware. There are many more reports here of same errors on older Linux distrubitions with older Matlab versions and probably older hardware, with same workarounds. But it would be better if 3D acceleration worked out of the box with R2024b or at least get disabled by default, if there is a problem.
The whole error message is:
com.jogamp.opengl.GLException: X11GLXDrawableFactory – Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :1, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x134ee3b8, isOwner false, <590c7f9b, 33bfcb35>[count 0, qsz 0, owner <NULL>]]]
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:326)
at jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:297)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:688)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:297)
… 2 more
This happens at least on the following Intel GPUs:
Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]
Intel Corporation Raptor Lake-P [Iris Xe Graphics] (rev 04)
A workaround is to disable 3D acceleration with ‘matlab -softwareopengl’.
On a laptop which has both Nvidia and Intel GPU Matlab automatically disables 3D acceleration when you attempt to use the Nvidia GPU:
jjaakkol@lx4-fuxi0:~$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia matlab
MATLAB is selecting SOFTWARE rendering.
However if you force 3D rendering on the nvidia GPU, it seems to work fine:
jjaakkol@lx4-fuxi0:~$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia matlab -nosoftwareopengl -nodesktop
< M A T L A B (R) >
Copyright 1984-2024 The MathWorks, Inc.
R2024b (24.2.0.2712019) 64-bit (glnxa64)
August 22, 2024
To get started, type doc.
For product information, visit www.mathworks.com.
Warning: OpenGL Startup options will be removed in a future release.
>> rendererinfo
ans =
struct with fields:
GraphicsRenderer: ‘OpenGL Hardware’
Vendor: ‘NVIDIA Corporation’
Version: ‘4.6.0 NVIDIA 555.42.06’
RendererDevice: ‘NVIDIA RTX 2000 Ada Generation Laptop GPU/PCIe/SSE2’
Details: [1×1 struct]
>>This error message means that 3D accelerated OpenGL rendering does not work. On same hardware R2024a didn’t even try OpenGL, so this is a new problem. This applies to R2024b running on Ubuntu LTS 24.04 on at least two different hardware. There are many more reports here of same errors on older Linux distrubitions with older Matlab versions and probably older hardware, with same workarounds. But it would be better if 3D acceleration worked out of the box with R2024b or at least get disabled by default, if there is a problem.
The whole error message is:
com.jogamp.opengl.GLException: X11GLXDrawableFactory – Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :1, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x134ee3b8, isOwner false, <590c7f9b, 33bfcb35>[count 0, qsz 0, owner <NULL>]]]
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:326)
at jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:297)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:688)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:297)
… 2 more
This happens at least on the following Intel GPUs:
Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]
Intel Corporation Raptor Lake-P [Iris Xe Graphics] (rev 04)
A workaround is to disable 3D acceleration with ‘matlab -softwareopengl’.
On a laptop which has both Nvidia and Intel GPU Matlab automatically disables 3D acceleration when you attempt to use the Nvidia GPU:
jjaakkol@lx4-fuxi0:~$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia matlab
MATLAB is selecting SOFTWARE rendering.
However if you force 3D rendering on the nvidia GPU, it seems to work fine:
jjaakkol@lx4-fuxi0:~$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia matlab -nosoftwareopengl -nodesktop
< M A T L A B (R) >
Copyright 1984-2024 The MathWorks, Inc.
R2024b (24.2.0.2712019) 64-bit (glnxa64)
August 22, 2024
To get started, type doc.
For product information, visit www.mathworks.com.
Warning: OpenGL Startup options will be removed in a future release.
>> rendererinfo
ans =
struct with fields:
GraphicsRenderer: ‘OpenGL Hardware’
Vendor: ‘NVIDIA Corporation’
Version: ‘4.6.0 NVIDIA 555.42.06’
RendererDevice: ‘NVIDIA RTX 2000 Ada Generation Laptop GPU/PCIe/SSE2’
Details: [1×1 struct]
>> This error message means that 3D accelerated OpenGL rendering does not work. On same hardware R2024a didn’t even try OpenGL, so this is a new problem. This applies to R2024b running on Ubuntu LTS 24.04 on at least two different hardware. There are many more reports here of same errors on older Linux distrubitions with older Matlab versions and probably older hardware, with same workarounds. But it would be better if 3D acceleration worked out of the box with R2024b or at least get disabled by default, if there is a problem.
The whole error message is:
com.jogamp.opengl.GLException: X11GLXDrawableFactory – Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :1, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x134ee3b8, isOwner false, <590c7f9b, 33bfcb35>[count 0, qsz 0, owner <NULL>]]]
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:326)
at jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:297)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:688)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:297)
… 2 more
This happens at least on the following Intel GPUs:
Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]
Intel Corporation Raptor Lake-P [Iris Xe Graphics] (rev 04)
A workaround is to disable 3D acceleration with ‘matlab -softwareopengl’.
On a laptop which has both Nvidia and Intel GPU Matlab automatically disables 3D acceleration when you attempt to use the Nvidia GPU:
jjaakkol@lx4-fuxi0:~$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia matlab
MATLAB is selecting SOFTWARE rendering.
However if you force 3D rendering on the nvidia GPU, it seems to work fine:
jjaakkol@lx4-fuxi0:~$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia matlab -nosoftwareopengl -nodesktop
< M A T L A B (R) >
Copyright 1984-2024 The MathWorks, Inc.
R2024b (24.2.0.2712019) 64-bit (glnxa64)
August 22, 2024
To get started, type doc.
For product information, visit www.mathworks.com.
Warning: OpenGL Startup options will be removed in a future release.
>> rendererinfo
ans =
struct with fields:
GraphicsRenderer: ‘OpenGL Hardware’
Vendor: ‘NVIDIA Corporation’
Version: ‘4.6.0 NVIDIA 555.42.06’
RendererDevice: ‘NVIDIA RTX 2000 Ada Generation Laptop GPU/PCIe/SSE2’
Details: [1×1 struct]
>> opengl, r2024b, linux, ubuntu MATLAB Answers — New Questions