I'm running OpenFOAM on a remote server and basically manage to visualize the results via paraview's pvserver
as described here. However upon connection the client yields
Server DISPLAY not accessible!
Display is not accessible on the server side. Remote rendering will be disabled.
which is basically correct, since the server doesn't run an X server. Performance is of course suboptimal since without remote rendering the entire geometry is transferred (I guess it's almost as bad as directly ssh-copying the files to run purely locally). The server does have a simple onboard GPU (c2:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 41) as per lspci
), using which might be called plan B since at some point I might switch to a server without GPU or an entirely different one. So instead, I had a look at https://kitware.github.io/paraview-docs/latest/cxx/Offscreen.html, and using Arch Linux I obtained its paraview PKGBUILD
via asp checkout paraview
and appended the following switches to its build() -> cmake
instruction:
-DVTK_OPENGL_HAS_OSMESA=ON \
-DVTK_USE_X=OFF \
-DPARAVIEW_USE_QT=OFF \
Compilation went without errors (though lots of warnings which I might have to check if they are different with and without those switches), yet pvserver
now SEGFAULTs:
$LD_PRELOAD=/usrlib/libGLEW.so pvserver --force-offscreen-rendering
Waiting for client...
Connection URL: cs://xxx:11111
Accepting connection(s): xxx:11111
Client connected.
( 52.668s) [pvserver ]vtkOpenGLRenderWindow.c:565 ERR| vtkOSOpenGLRenderWindow (0x55f0fa7f4b60): GLEW could not be initialized: Missing GL version
Loguru caught a signal: SIGSEGV
Stack trace:
0 0x7f53ca2c8f80 /usr/bin/../lib/libc.so.6(+0x3cf80) [0x7f53ca2c8f80]
( 52.669s) [pvserver ] :0 FATL| Signal: SIGSEGV
Segmentation fault (core dumped)
LD_PRELOAD
ing the existing libGLEW.so
as suggested e.g. here did not change things so now I'm stuck... /usr/lib/libosmesa.so
is also present, as is libOpenGL.so
, so what am I missing? How can I troubleshoot this properly?
I'm using ArchLinux and the folowing is working perfectly:
git clone https://gitlab.kitware.com/paraview/paraview.git --recursive
mkdir build
cd build
cmake -GNinja -DVTK_OPENGL_HAS_OSMESA=ON -DVTK_USE_X=OFF -DPARAVIEW_USE_QT=OFF ../paraview
ninja
./bin/pvserver
then connecting from an actual ParaView and rendering something on the server works perfectly.