OpenGL Version

I am using ParaView (client only) on my desktop
The Help->About menu reports OpenGL Version ‘3.2.0 NVIDIA 410.78’

However, if I query the same using the Python Shell:

from vtk.vtkPVClientServerCoreRendering import vtkPVOpenGLInformation
info = vtkPVOpenGLInformation()
print("Version:  %s" % info.GetVersion())

it reports ‘4.5.0 NVIDIA 410.78’. Why the difference between 3.2.0 and 4.5.0?

I do reproduce the issue.

Funny thing is glxinfo give another answer as well :
OpenGL version string: 4.6.0 NVIDIA 415.27

I wonder if that is linked to different requested version of OpenGL.

I did not want to add to the confusion, but indeed, my glxinfo also gives yet another answer:

glxinfo | grep 4.6
OpenGL core profile version string: 4.6.0 NVIDIA 410.78
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL version string: 4.6.0 NVIDIA 410.78
OpenGL shading language version string: 4.60 NVIDIA

OK, down the rabbit hole. I believe that many of us have been misinterpreting OpenGL version string. Evidentally, some OpenGL functionality has been deprecated, and these OpenGL strings are trying to tell us two separate things. OpenGL version string tells us the version of OpenGL that is TOTALLY SUPPORTED (including deprecated functionality). Frequently, that stops at version 3.0. The OpenGL core profile version string, on the other hand, tells us the version number that is core, i.e., currently required, functionality.

So, for the following:
OpenGL renderer string: Mesa DRI Intel® Iris Pro Graphics P580 (Skylake GT4e)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.0.5
OpenGL core profile shading language version string: 4.50
OpenGL version string: 3.0 Mesa 18.0.5

I believe it says that ALL OpenGL functionality (whether deprecated or not) is up to version 3.0, and current, core required functionality up to 4.5 is covered.

In ParaView’s About, it reports the following:
OpenGL version 4.5 (Core Profile) Mesa 18.0.5

So, I interpret this as saying that we are running on OpenGL version 4.5, ParaView realizes that, and will run in hardware.

By the way, this does NOT answer Jean’s original question, having to do with the difference between the About information and the Python information.

Here is my reference for my thoughts:


By the way, when I run the code provided by Jean above, it gives me

Version: 4.5 (Core Profile) Mesa 18.0.5

Which is exactly what I get with About, and the openGL core profile version string.

I just verified my answer above with a former Evans and Sutherland OpenGL architect. Amazingly, I pretty much got it correct.

Well, that does not explain why pvpython and ParaView give different answers.

We explicitly set the OpenGL version to 3.2 in the VTK QT widget. That’s the OpenGL context version we are working with, and reported by ParaView about window. The version reported by python (4.5) is probably the maximum version supported by the card.