Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • ParaView ParaView
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,961
    • Issues 1,961
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 97
    • Merge requests 97
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ParaViewParaView
  • ParaViewParaView
  • Issues
  • #17905
Closed
Open
Issue created Dec 21, 2017 by Fabrizio Bisetti@fbisetti

Confirming that pvserver runs with OSMesa + OpenSWR driver

Hello there:

I've successfully built and installed the following OSMesa rendering stack (from source) for use on CPU only compute nodes of a small cluster

I've then built Paraview (from source). The pvserver runs on a compute node and we connect to it from a remote Paraview client via forward connection with SSH tunneling.

I am having trouble confirming which driver the pvserver uses for rendering. My understanding is that OSMesa gets compiled with various cpu-based driver options, i.e. soft pipe (classic OSMesa), llvmpipe, and swr.

I would like to ensure that swr (OpenSWR) is being used.

Note that one complicating factor is that the CPU-based compute nodes do not have any X installed and I've compiled only OSMesa (see below). Thus, I cannot compile the GLUT based utility glinfo or gears, which could possibly tell me how the rendering is done.

Finally, while it seems that one can invoke paraview with a switch --mesa-swr-avx2, I am not sure that can be done with pvserver.

Also, even then, how would I confirm this is which driver is being used?

Thank you. Fabrizio

HARDWARE

Each compute node features two (x2) Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz for a total of 28 cores. The compute nodes do not have a GPU.

SOFTWARE STACK

Everything is compiled with gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) on a Linux 3.10.0-514.el7.x86_64 (Centos 7).

Here is the cpu-based rendering stack

  1. LLVM 5.0.0

cmake3 -G "Unix Makefiles"
-DCMAKE_BUILD_TYPE=Release
-DLLVM_TARGETS_TO_BUILD=X86
-DLLVM_INSTALL_UTILS=TRUE
-DLLVM_ENABLE_RTTI=TRUE
-DBUILD_SHARED_LIBS=TRUE
-DCMAKE_INSTALL_PREFIX=$INSTALLDIR
../llvm-5.0.0.src

  1. Mesa3D 17.3.0

Note that the compute nodes do not have any X servers (X11) nor any other OpenGL implementation (e.g. repo based from a yum install)

./configure
--disable-xvmc
--disable-glx
--disable-dri
--with-dri-drivers=
--with-gallium-drivers=swrast,swr
--enable-texture-float
--disable-egl
--disable-gbm
--with-platforms=
--enable-gallium-osmesa
--enable-llvm
--prefix=$INSTALLDIR

  1. GLU 9.0.0

SITE_MESA_LIB=/path/to/mesa/install/above

PKG_CONFIG_PATH="$SITE_MESA_LIB/pkgconfig"
OSMESA_LIBS="-L$SITE_MESA_LIB -lOSMesa"
./configure --prefix=$INSTALLDIR
--enable-osmesa
--enable-shared

  1. ParaView 5.4.0

I've configured the basic ParaView build as recommended. I am using OpenMPI 2.1.0 compiled with the system gcc.

The additional OSMesa options are as below:

VTK_USE_X=OFF VTK_USE_OFFSCREEN:BOOL=ON

OPENGL_INCLUDE_DIR=/path/to/mesa/install/above/include OPENGL_gl_LIBRARY:FILEPATH=/path/to/mesa/install/above/lib/libOSMesa.so OPENGL_glu_LIBRARY:FILEPATH=/path/to/glu/install/above/lib/libGLU.so

VTK_OPENGL_HAS_OSMESA:BOOL=ON OSMESA_INCLUDE_DIR:PATH=/path/to/mesa/install/above/include OSMESA_LIBRARY:FILEPATH=/path/to/mesa/install/above/lib/libOSMesa.so

Note that I've set everything to point to the OSMesa install directory.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking