pvserver remote rendering


I’m trying to setup remote rendering on a cluster node, and connect back to it with paraview client.
So far, I can run pvserver, connect to it with no warnings. When I try to load data, I get …

export DISPLAY=":0"
[peter@node10 bin]# ./pvserver
Waiting for client...
Connection URL: cs://node10.localdomain:11111
Accepting connection(s): node10.localdomain:11111
Client connected.
VisRTX 0.1.6, using devices:
 0: Quadro P1000 (Total: 4.2 GB, Available: 4.2 GB)
( 368.558s) [pvserver        ]vtkOpenGLRenderWindow.c:578    ERR| vtkXOpenGLRenderWindow (0x1e4be70): Unable to find a valid OpenGL 3.2 or later implementation. Please update your video card driver to the latest version. If you are using Mesa please make sure you have version 11.2 or later and make sure your driver in Mesa supports OpenGL 3.2 such as llvmpipe or openswr. If you are on windows and using Microsoft remote desktop note that it only supports OpenGL 3.2 with nvidia quadro cards. You can use other remoting software such as nomachine to avoid this issue.
( 368.559s) [pvserver        ]     vtkOpenGLState.cxx:1380  WARN| Hardware does not support the number of textures defined.
( 368.559s) [pvserver        ]     vtkOpenGLState.cxx:1380  WARN| Hardware does not support the number of textures defined.

Whilst running pvserver and connected (but before loading data) nvidia-smi shows

# nvidia-smi
Sat May 30 23:28:55 2020
| NVIDIA-SMI 440.64.00    Driver Version: 440.64.00    CUDA Version: 10.2     |
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|   0  Quadro P1000        Off  | 00000000:C1:00.0 Off |                  N/A |
| 34%   36C    P0    N/A /  N/A |     37MiB /  4039MiB |      0%      Default |

| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|    0      7080      G   X                                              8MiB |
|    0      9424      G   /usr/bin/X                                     6MiB |
|    0      9490      G   /usr/bin/gnome-shell                           7MiB |
|    0     45238      G   ./pvserver                                     1MiB |

glxgears works ok

# glxgears
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
110869 frames in 5.0 seconds = 22173.729 FPS
111551 frames in 5.0 seconds = 22310.166 FPS

Glxinfo seems to report what I expect

glxinfo | grep OpenGL 

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Quadro P1000/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 440.64.00
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 440.64.00
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 440.64.00
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

I’ve been through the steps of https://www.paraview.org/Wiki/Setting_up_a_ParaView_Server#X_Connections
but still no luck.

Any insights would be gratefully received.



Which version of ParaView are you using ?

We managed to fix this. There was some nvidia lib extensions missing.

For reference, I believe we added the below files and made some changes to the Xorg.conf.

ls /usr/lib64/xorg/modules/extensions/
libglxserver_nvidia.so libglxservernvidia.so libglx.so libglx.so.xorg