openGL mrview errors + rhel6 + hpc

Hello kind MRtrixers.

Hope you can help me with an issue I’m having. Please bear with me, the following might be a little long.

My group recently installed mrtrix 0.3.14 on one of our clusters running rhel6 for a group of users who requested it (we also have 0.2.12 and 0.3.12). It configured and build without errors, however, upon using mrview, the following errors were noted:

[llnguyen@hm011 ~]$ mrview
X Error: GLXBadFBConfig 164

Extension:    150 (Uknown extension)
Minor opcode: 34 (Unknown request)
Resource id:  0x2e0003b 
mrview: [WARNING] unable to determine OpenGL version - operation may be unstable if actual version is less than 3.3 
mrview: [ERROR] GLSL log [vertex shader]: 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ES

mrview: [ERROR] error compiling OpenGL vertex shader ID 1 
QWidget: Must construct a QApplication before a QPaintDevice
Aborted (core dumped)

Our original idea was to update mesa to resolve the above problems. So I built mesa 11.2.1. Using the new mesa, I tried to use mrview with mrtrix 0.3.14 again, and while the GLSL error vanished, I was still unable to use mrview:

[llnguyen@hm011 ~]$ module load mesa/11.2.1
Mesa 3D Graphics Library version 11.2.1 loaded.
[llnguyen@hm011 ~]$ mrview
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error: GLXBadFBConfig 164
Extension:    150 (Uknown extension)
Minor opcode: 34 (Unknown request)
Resource id:  0x2e0003b
mrview: [WARNING] unable to determine OpenGL version - operation may be unstable if actual version is less than 3.3
X Error: BadLength (poly request too large or internal Xlib length error) 16
Extension:    150 (Uknown extension)
Minor opcode: 2 (Unknown request)
Resource id:  0x2e0003d
X Error: GLXBadLargeRequest 162
Extension:    150 (Uknown extension)
Minor opcode: 2 (Unknown request)
Resource id:  0x2
mrview: [ERROR] error compiling OpenGL vertex shader ID 0
QWidget: Must construct a QApplication before a QPaintDevice
Aborted (core dumped)

Even stranger, if one uses mrtrix 0.3.12 instead of mrtrix 0.3.14 along with the new mesa, the mrview gui will sporadically pop up when running mrview, however its performance (whether or not the gui would come up) was incredibly inconsistent.

So I then of course decided to build 0.3.14 again with the new mesa, however this ended up with linking errors in the configure step. From configure.log:

EXEC <<


CMD: g++ -pthread -lz qt_moc.o qt.o -o qt -m64 -Wl,-O1 -Wl,-rpath,/N/soft/rhel6/qt/gnu/4.8.4/lib -L/N/soft/rhel6/qt/gnu/4.8.4/lib -L/usr/X11R6/lib64 -lQtSvg -L/N/soft/rhel6/qt/gnu/4.8.4/lib -L/usr/X11R6/lib64 -lQtOpenGL -lQtGui -lQtCore -lGL -lpthread


EXIT: 1


STDERR:


/usr/lib/../lib64/libGL.so: undefined reference to `_glapi_tls_Dispatch'


collect2: error: ld returned 1 exit status


>>








ERROR: error linking Qt application!

I’ve tried playing around with release/config among other things but to no avail.

Any suggestions or ideas would be appreciated. Perhaps I’m overlooking something simple? Apologies if the answer is obvious and thank you in advance for your help.

If this running on a cluster, I’m assuming you’re trying to display over a remote X11 connection? This is very difficult to setup unfortunately - see the docs for the full details.

Thank you for your reply (albeit the answer was a little unfortunate :wink: )

Just a question, apologies again if it’s dense, would using ThinLinc to run mrview possibly help?

I’ve no experience with ThinLinc - in fact, I’ve very little experience with VNC solutions in general. The main thing to verify is whether it can handle OpenGL - which is not a given. Also, as mentioned in the docs, make sure the server has a decent enough graphics card and driver to do the rendering. Personally I always use the local install option (running MRView locally and accessing the data over a network filesystem/share), but I do realise that this might require quire a bit of maintenance to set up on users’ systems…

Hi,

Just to say that I managed to run mrview on a distance server (it does not work when using ssh -X) :
I am using virtual GL.

Instead of doing ssh -X server
I do
vglconnect server
and then
vglrun mrview

this is working very nicely

Chears

Romain

2 Likes

Thanks for your feedback. I appreciate it.