[Paraview] what is the difference between OpenGL rendering backend and OpenGL2 rendering backend when they communicate with the X Window System?

张驭洲 yzhzhang at ipe.ac.cn
Mon Feb 13 05:23:45 EST 2017



Hello,

For a long time I have a problem using ParaView 5.2.0 in the client-server mode. However, at the same time, I can use ParaView 4.4.0 in this mode on the same machine. Recently I have built several different versions of ParaView, including 4.3.1, 4.4.0, 5.1.2, 5.2.0, on the same machine and with almost the same compilation options (the only difference among the buildings is the rendering backend), and I found that when built with OpenGL rendering backend, all the versions, including 5.1.2 and 5.2.0, can work normally, in both standalone mode and client-server mode. But when 5.1.2 and 5.2.0 are built with OpenGL2 rendering backend, they can't work. The machine is a node of a HPC system, so I connect to it via realVNC. If I start the paraview execuble by typing ./paraview, I get this output:

Segmentation fault (core dumped)

If I connect to the node via ssh, and type ./paraview , then I get:

paraview: cannot connect to X server

I know this is because I didn't start the X for the paraview, this test is just for comparison.

If I connect to the node via ssh, and type ./paraview -display :0 , then I get:

X Error: GLXBadContext 144
  Extension:    135 (Uknown extension)
  Minor opcode: 5 (Unknown request)
  Resource id:  0x36001bc
ERROR: In /root/Desktop/ParaView-v5.2.0/VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx, line 629
vtkXOpenGLRenderWindow (0x339c550): GLEW could not be initialized.


Segmentation fault (core dumped)

If I connect to the node via ssh, and type ./pvserver and connect to it from the paraview GUI on my PC, then I get:



Display is not accessible on the server side.

Remote rendering will be disabled.




This means if I dont't use the rendering feature on the node, other features of the ParaView can be used normally.





If I connect to the node via ssh, and type ./pvserver -display :0, and connect to it from the paraview GUI on my PC, then I get lots of errors on the client side, like this:


ERROR: In /home/buildslave/dashboards/buildbot/paraview-pvbinsdash-linux-shared-release_opengl2_qt4_superbuild/source-paraview/VTK/Common/System/vtkSocket.cxx, line 572
vtkClientSocket (0x1973c70): Socket error in call to send. Broken pipe.

And on the server side, the errors are:

X Error of failed request:  GLXBadContext
  Major opcode of failed request:  135 (GLX)
  Minor opcode of failed request:  5 (X_GLXMakeCurrent)
  Serial number of failed request:  28
  Current serial number in output stream:  28

>From all the tests, I think it's reasonable to guess that the problem lies in the X Window system and the OpenGL2 rendering backend. The operation system of the node is CentOS 6.3 and the X Window System was installed using "yum groupinstall". The GPU on the node is Tesla C2050 and the driver version is 331.67. The output from "glxinfo | grep OpenGL" is as follow:

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Tesla C2050/PCIe/SSE2
OpenGL version string: 4.4.0 NVIDIA 331.67
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL extensions:

Is there anything wrong with the setting? Why does ParaView with OpenGL rendering backend work on it but that with OpenGL2 not work?

Any help or reply is highly appreciated!

-Zhang






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20170213/b08f6901/attachment.html>


More information about the ParaView mailing list