[vtkusers] OpenGL version error on macOS

Langer, Stephen A. (Fed) stephen.langer at nist.gov
Thu Aug 30 15:51:47 EDT 2018


glxinfo reports 2.1 on my Mac, too…  I guess I'll ask the MacPorts people.

I do have a Linux machine but X11 forwarding isn't working, although the ssh settings appear to allow it.  I suspect some global overzealous security setting, but our sysadmin is off this week so I can't ask about it.

Thanks.

-- Steve

On 8/30/18, 11:37 AM, "David Gobbi" <david.gobbi at gmail.com<mailto:david.gobbi at gmail.com>> wrote:

I ran 'glxinfo' under xquartz on my own machine and it reports OpenGL 2.1.  This might be a limitation of glx or xquartz, rather than a limitation of the underlying OpenGL libraries or the hardware.

If you have a linux machine, you can try doing X11 via ssh (with ssh -Y) to see if the results are different on a different xserver.

And there is also the option of building a full-software Mesa (i.e. unaccelerated).  People often do this on Windows, since accelerated graphics don't always work with remote desktop.

For myself, since I use Windows on VirtualBox which has limited OpenGL support, I'm still building my Windows VTK apps with the old OpenGL backend.

 - David



On Thu, Aug 30, 2018 at 9:11 AM Langer, Stephen A. (Fed) <stephen.langer at nist.gov<mailto:stephen.langer at nist.gov>> wrote:
Yes, I have all of the X11 libraries and the server installed from MacPorts.   X11 programs that don't use vtk, such as glxgears, run correctly.   Poking around with "otool -L" shows that glxgears and CylinderRenderingProperties are linking to the same X and GL libraries, with the possible exception of libvtkglew, which as far as I can tell isn't equivalent to anything loaded by glxgears.

Setting MESA_GL_VERSION_OVERRIDE as Elvis suggested didn't make any difference.

-- Steve

On 8/29/18, 5:43 PM, "David Gobbi" <david.gobbi at gmail.com<mailto:david.gobbi at gmail.com>> wrote:

Have you installed XQuartz?  It provides a full set of headers and libraries for X11 and OpenGL in /opt, and the latest version number listed in its headers is GL_VERSION_4_5.

It has been many years since I've built VTK with X11 on the Mac, but XQuartz was where I always got the dev files from.

 - David

On Wed, Aug 29, 2018 at 3:10 PM Langer, Stephen A. (Fed) <stephen.langer at nist.gov<mailto:stephen.langer at nist.gov>> wrote:

Thanks for the suggestion, but that didn't make any difference.



I don't think the problem is the frameworks, actually.   I don't believe that the OpenGL framework provided by Apple supports X11, so there's no point in directing vtk towards it.



I can get vtk to link to the OpenGL libraries provided by the MacPorts' mesa and libGLU, but when it does, it complains about the OpenGL version.   The mesa in MacPorts is version is 17.1.6, which supports OpenGL 4.5, so it ought to work.  However, the Mesa release notes (https://www.mesa3d.org/relnotes/17.1.6.html<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.mesa3d.org%2Frelnotes%2F17.1.6.html&data=02%7C01%7Cstephen.langer%40nist.gov%7Ce6e9fa9dc3d44588e52e08d60e8e822a%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C636712402558679990&sdata=zSJ8GMHl3wroEV2lYgDEvym6ldf67lvHOQeLgyO%2FEeo%3D&reserved=0>) say this, which I don't completely understand:



Mesa 17.1.6 implements the OpenGL 4.5 API, but the version reported by glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. Some drivers don't support all the features required in OpenGL 4.5. OpenGL 4.5 is only available if requested at context creation because compatibility contexts are not supported.



That doesn't way what version is provided if 4.5 isn't requested.  But is it possible that vtk isn't getting the OpenGL context correctly?  I tried looking at the code but didn't get very far.  I'm not at all familiar with OpenGL.



-- Steve





On 8/29/18, 7:03 AM, "Elvis Stansvik" <elvis.stansvik at orexplore.com<mailto:elvis.stansvik at orexplore.com>> wrote:



    I've only ever built with Cocoa. But it looks like VTK is using

    find_package(OpenGL ...) to find OpenGL, which in turn

    (FindOpenGL.cmake) uses find_library(OPENGL_gl_LIBRARY OpenGL DOC

    "OpenGL library for OS X") to find the library.



    Where find_library looks for macOS frameworks can be controlled using

    CMAKE_FRAMEWORK_PATH

    (https://cmake.org/cmake/help/latest/variable/CMAKE_FRAMEWORK_PATH.html#variable:CMAKE_FRAMEWORK_PATH<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcmake.org%2Fcmake%2Fhelp%2Flatest%2Fvariable%2FCMAKE_FRAMEWORK_PATH.html%23variable%3ACMAKE_FRAMEWORK_PATH&data=02%7C01%7Cstephen.langer%40nist.gov%7Ce6e9fa9dc3d44588e52e08d60e8e822a%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C636712402558679990&sdata=XZNgVVFj9HIfaqepcl1VQy0YZJMCVSvVkPpw7FlzWpc%3D&reserved=0>),

    so perhaps try with



        -DCMAKE_FRAMEWORK_PATH:PATH=/path/to/where/your/GL/libs/are



    HTH,

    Elvis



    2018-08-27 17:54 GMT+02:00 Langer, Stephen A. (Fed) <stephen.langer at nist.gov<mailto:stephen.langer at nist.gov>>:

    > Hi --

    >

    >

    >

    > I finally need to actually solve a problem I encountered a year ago...  How

    > do I get vtk to use the correct version of OpenGL on macOS using X11?

    >

    >

    >

    > I downloaded and built CylinderRenderingProperties from the VTK examples

    > site.  When I run it, it says

    >

    >

    >

    > Warning: In

    > /Users/langer/UTIL/VTK/VTK-8.1.1/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx,

    > line 804

    >

    > vtkXOpenGLRenderWindow (0x7fa9fa81f800): VTK is designed to work with OpenGL

    > version 3.2 but it appears it has been given a context that does not support

    > 3.2. VTK will run in a compatibility mode designed to work with earlier

    > versions of OpenGL but some features may not work.

    >

    >

    >

    > and then seg faults.

    >

    >

    >

    > That was using vtk 8.1.1 build with VTK_USE_X11=ON and VTK_USE_COCOA=OFF.

    > OpenGL was provided by the MacPorts mesa and libGLU ports.  X11 was also

    > installed via MacPorts.

    >

    >

    >

    > If, on the other hand, I build vtk 8.1.1 with VTK_USE_COCOA=ON and

    > VTK_USE_X11=OFF, then it uses OpenGL from

    > /System/Library/Frameworks/OpenGL.framework, and CylinderRenderingProperties

    > compiles and runs correctly.

    >

    >

    >

    > Do I need to do something special when building or using VTK to get it to

    > find the correct version of OpenGL?

    >

    >

    >

    > (I'm running macOS High Sierra, but the problem existed with the previous OS

    > as well.)

    >

    >

    >

    > Thanks.

    >

    >     -- Steve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/vtkusers/attachments/20180830/3dfe00a4/attachment-0001.html>


More information about the vtkusers mailing list