I think you might need a newer driver. We list 355.11 in https://blog.kitware.com/off-screen-rendering-through-the-native-platform-interface-egl/
Dan On Sat, Mar 3, 2018 at 1:29 PM, Andrew Cochrane <[email protected]> wrote: > I had a similar issue using the nvidia driver. > Is this a bug? > > I had to add the egl, eglcore and osmesa libraries to the link lines for > vtkProbeOpenGLVersion and libvtkRenderingOpenGL2-pv5.5.so.1 > > `-L/usr/lib/nvidia-340/ -lEGL -lnvidia-eglcore -L/usr/lib/x86_64-linux-gnu > -lOSMesa` > or > `/usr/lib/nvidia-340/libEGL.so > /usr/lib/nvidia-340/libnvidia-eglcore.so.340.104 > /usr/lib/x86_64-linux-gnu/libOSMesa.so` > > Best, > Andrew > > Original Message: > > Greetings, > > I'm trying to build pvserver with GPU headless rendering capability and > > am getting undefined references to EGL library functions when using > > NVIDIA's libEGL_nvidia.so.384.90 library. My cmake build specification > > is: > > cmake ../paraview \ > > -DVTK_USE_EGL=ON \ > > -DVTK_OPENGL_HAS_EGL=ON \ > > -DEGL_INCLUDE_DIR=/usr/include/nvidia-384 \ > > -DEGL_opengl_LIBRARY:FILEPATH=/usr/local/nvidia/lib64/libOpenGL.so.0 \ > > -DEGL_gldispatch_LIBRARY:FILEPATH=/usr/local/nvidia/lib64/libGLdispatch.so.0 \ > > -DEGL_LIBRARY:FILEPATH=/usr/local/nvidia/lib64/libEGL_nvidia.so.384.90 \ > > -DOPENGL_INCLUDE_DIR=:FILEPATH=/usr/include/nvidia-384 \ > > -DVTK_USE_X=OFF \ > > -DVTK_OPENGL_HAS_OSMESA=OFF \ > > -DPARAVIEW_BUILD_QT_GUI=OFF \ > > -DBUILD_SHARED_LIBS=ON -DPARAVIEW_USE_MPI=ON > > libvtkRenderingOpenGL2-pv5.4.so.1 is reporting undefined references to > > the egl* functions: > > [100%] Building CXX object > CommandLineExecutables/CMakeFiles/pvserver.dir/pvserver.cxx.o > > [100%] Linking CXX executable ../bin/pvserver > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglTerminate' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglCreateWindowSurface' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglQueryString' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglGetProcAddress' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglGetError' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglCreatePbufferSurface' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglDestroySurface' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglBindAPI' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglInitialize' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglQuerySurface' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglChooseConfig' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglSwapBuffers' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglCreateContext' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglGetCurrentDisplay' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglGetDisplay' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglMakeCurrent' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglDestroyContext' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglGetCurrentSurface' > > collect2: error: ld returned 1 exit status > > CommandLineExecutables/CMakeFiles/pvserver.dir/build.make:124: recipe for > target 'bin/pvserver' failed > > Manually linking while specifying libEGL_nvidia.so.384.90 and > > libEGL.so.1 does not resolve these references either: > > /usr/bin/c++ -I/usr/include/nvidia-384 -g > CMakeFiles/pvserver.dir/pvserver.cxx.o -o ../bin/pvserver -rd > > ynamic /usr/lib/nvidia-384/libEGL.so.1 > ../lib/libvtkPVServerManagerApplication-pv5.4.so.1 ../lib/libvtkPVServ > > erManagerCore-pv5.4.so.1 ../lib/libvtkPVServerImplementationCore-pv5.4.so.1 > ../lib/libvtkPVClientServerCoreCor > > e-pv5.4.so.1 ../lib/libvtkFiltersParallel-pv5.4.so.1 > ../lib/libvtkFiltersExtraction-pv5.4.so.1 ../lib/libvtkFi > > ltersModeling-pv5.4.so.1 ../lib/libvtkFiltersGeometry-pv5.4.so.1 > ../lib/libvtkPVVTKExtensionsCore-pv5.4.so.1 . > > ./lib/libvtkPVCommon-pv5.4.so.1 ../lib/libvtkClientServer-pv5.4.so.1 > ../lib/libvtkIOXMLParser-pv5.4.so.1 ../li > > b/libvtkFiltersSources-pv5.4.so.1 ../lib/libvtkFiltersGeneral-pv5.4.so.1 > ../lib/libvtkFiltersCore-pv5.4.so.1 . > > ./lib/libvtkIOImage-pv5.4.so.1 ../lib/libvtkPVVTKExtensionsSIL-pv5.4.so.1 > ../lib/libvtkParallelMPI-pv5.4.so.1 > > ../lib/libvtkParallelCore-pv5.4.so.1 ../lib/libvtkIOLegacy-pv5.4.so.1 > ../lib/libvtkIOCore-pv5.4.so.1 ../lib/li > > bvtkCommonExecutionModel-pv5.4.so.1 ../lib/libvtkCommonDataModel-pv5.4.so.1 > ../lib/libvtkCommonSystem-pv5.4.so > > .1 ../lib/libvtkCommonTransforms-pv5.4.so.1 > ../lib/libvtkCommonMisc-pv5.4.so.1 ../lib/libvtkCommonMath-pv5.4.s > > o.1 ../lib/libvtkCommonCore-pv5.4.so.1 ../lib/libprotobuf.so -lpthread > ../lib/libvtkjsoncpp-pv5.4.so.1 -Wl,-rp > > ath,/opt/subflow/paraview/paraview_build/lib: > -Wl,-rpath-link,/opt/subflow/paraview/paraview_build/lib^Cusr/li > > b/nvidia-384/libEGL_nvidia.so.384.90 /usr/lib/nvidia-384/libEGL.so.384.90 > /usr/lib/nvidia-384/libEGL.so.1 -Wl, > > -rpath-link,/usr/lib/nvidia-384 /usr/lib/nvidia-384/libEGL.so > /usr/lib/nvidia-384/libGL.so /usr/lib/nvidia-384 > > /libGLESv1_CM.so /usr/lib/nvidia-384/libGLESv2.so > /usr/lib/nvidia-384/libGLX.so /usr/lib/nvidia-384/libOpenGL. > > so /usr/lib/nvidia-384/libnvcuvid.so /usr/lib/nvidia-384/libnvidia-cfg.so > /usr/lib/nvidia-384/libnvidia-compil > > er.so /usr/lib/nvidia-384/libnvidia-encode.so > /usr/lib/nvidia-384/libnvidia-fbc.so /usr/lib/nvidia-384/libnvid > > ia-ifr.so /usr/lib/nvidia-384/libnvidia-ml.so > > root at paraview-6dcc64f758-9nkbc > <http://public.kitware.com/mailman/listinfo/paraview>:/opt/subflow/paraview/paraview_build/CommandLineExecutables# > ../../link.sh > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglTerminate' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglCreateWindowSurface' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglQueryString' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglGetProcAddress' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglGetError' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglCreatePbufferSurface' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglDestroySurface' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglBindAPI' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglInitialize' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglQuerySurface' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglChooseConfig' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglSwapBuffers' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglCreateContext' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglGetCurrentDisplay' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglGetDisplay' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglMakeCurrent' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglDestroyContext' > > /opt/subflow/paraview/paraview_build/lib/libvtkRenderingOpenGL2-pv5.4.so.1: > undefined reference to `eglGetCurrentSurface' > > collect2: error: ld returned 1 exit status > > Does anyone know what is going wrong here? > > Thanks, > > Chris > > > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at http://www.kitware.com/ > opensource/opensource.html > > Please keep messages on-topic and check the ParaView Wiki at: > http://paraview.org/Wiki/ParaView > > Search the list archives at: http://markmail.org/search/?q=ParaView > > Follow this link to subscribe/unsubscribe: > https://public.kitware.com/mailman/listinfo/paraview > >
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Search the list archives at: http://markmail.org/search/?q=ParaView Follow this link to subscribe/unsubscribe: https://public.kitware.com/mailman/listinfo/paraview
