Closed TheChymera closed 6 years ago
MRIcroGL requires OpenGL 2.1 (released 2006) or later. You can find advice on the troubleshooting page. Typically on Linux systems you can update your graphics driver or graphics hardware to support this version of OpenGL. I have had poor experiences with nouveau drivers and would recommend the proprietary NVidia drivers for NVidia hardware. In general, software rendering with Mesa will not perform well, and you are better on investing in a hardware solution (Intel, AMD or NVidia graphics). Usually the terminal command glxinfo is a good starting point for understanding your OpenGL configuration.
While MRIcroGL 1.0 requires OpenGL 2.1, the upcoming MRIcroGL 1.2 will require OpenGL 3.3 Core (from 2010), though it will also support Metal for Apple MacOS.
It is worth noting that Surfice has two flavors - the old flavor requires OpenGL 2.1 while the regular flavor requires OpenGL 3.3. The compiled distributions include both flavors, and if you compile your own you can choose the version by editing your "opts.inc" file. The OpenGL 3.3 flavor requires more recent hardware, but uses the hardware resources much more efficiently and unlocks better features.
It is worth noting that Surfice has two flavors - the old flavor requires OpenGL 2.1 while the regular flavor requires OpenGL 3.3. The compiled distributions include both flavors, and if you compile your own you can choose the version by editing your "opts.inc" file. The OpenGL 3.3 flavor requires more recent hardware, but uses the hardware resources much more efficiently and unlocks better features.
Does this also apply identically to MRIcroGL?
I'm working mainly on laptops, so hardware bump is not an exception. All my laptops have integrated intel cards. This is a different issue, but I am also looking to use the Python functionality to programatically produce MRIcroGL/surf-ice outputs on headless systems. Would that be impossible?
Back to the rum-of-the-mill installations on my laptop. This is my glxinfo
output.
server glx version string: 1.4
This sounds concerning. Is this the same version schema you referred to when mentioning 2.1
. My package manager reports =virtual/opengl-7.0
. But this could be a different version schema since it's a virtual package.
Furthermore this only started happening recently (it used to work on this machine), so it's certainly not a hardware issue (and likely not an opengl availability issue). Most probably something changed in my config. But what could it be?
Your hardware is certainly sufficient to support MRIcroGL. Further, and glxinfo reports that it should support OpenGL 2.1:
OpenGL version string: 3.0 Mesa 18.2.0
OpenGL shading language version string: 1.30
However, the Mesa driver tends to have patchy OpenGL support. It looks like this computer is on the preview release of Mesa, perhaps you want to roll back to a stable release (18.1.8).
With regards to headless systems, note that GLX only supports OpenGL 1.4 or earlier. This precludes modern shaders from running. For this situation, I think FSLeyes is an excellent situation, though note that it will have limited functionality with this older OpenGL. As noted in the troubleshooting page, users have had success with MRIcroGL using vglrun, but I do not have experience with this.
I downgraded mesa to 18.1.8
, rebuilt MRIcroGL, and I continue to get the same error. What else could it be? could it be tat some part of the install failed?
Sorry, this seems clearly like a driver error. Google is your best friend. The code only requests and uses OpenGL 2.1 features - it never requests OpenGL 3.3 (indeed, it would fail on MacOS if it did, as MacOS only supports 2.1 compatibility or earlier).
I really think the error is in your graphics driver or its setup. Since I can not replicate this I am unable to help further. There is one hail mary you could try, but I highly doubt this would work. The solution would involve recompiling to use dglOpenGL which has additional X dependencies than the default code. It is possible these X-calls could coax your driver into working properly. To do this you need to edit opts.inc. Specifically, uncomment the line
//{$DEFINE DGL} //uncomment to use dglOpenGL: incompatible with Core
you will also need this library (just put it in the folder with the other code).
Closing this issue - unable to replicate. Issue appears consistent with a driver issue. If I were you, I would attempt to install a version of Blender which has an OpenGL 2.1 environment. Blender is a wildly popular program, and it may provide diagnostics that allow you to resolve your problems.
Hi, I get the following error in a window pop up when I try to visualize volumes in “render” mode:
Additionally, the rendering looks like a block in rainbow colors.
This happens on:
=mricrogl-1.0.20170401
=mricrogl-1.0.20170714
=mricrogl-1.0.20180623
=mricrogl-9999
(latest commit, 2fad294)This does however, only happen on one of my machines. Any idea what could be wrong?