Hi everyone,
my goal is to run my application using EGL on a ubuntu 20.04 headless server.
looking at issues like Headless Nvidia · Issue #557 · panda3d/panda3d · GitHub and Try to build panda3d using on a headless machine (no x-11) using egl this seems possible, but all issues are related to python users.
In my case I have a c++ application and I compile Panda via CMake (to import it via find_package), but it seems there is no cmake target for p3headlessgl library.
I’m building Panda using commit adb92428856853019583f398d27c5d34e44a9343 (14 May 2024)
I modified the cmake to generate a metalib using p3egldisplay_gles1 and using NO_X11 which kind of works. The app runs correctly without opening the window and grabbing the screenshots I see the rendering is (mostly) ok, but there are no shadows and also custom shaders seems not to be loaded even though the lib does links to Cg.
ldd pandagl.so
linux-vdso.so.1 (0x00007fffdc3ee000)
libGLESv1_CM.so.1 => /lib/x86_64-linux-gnu/libGLESv1_CM.so.1 (0x00007fb2c8204000)
libpanda.so.1.11 => /localhome/work/07_cv3/workspace/build/debug/Panda3D/lib/libpanda.so.1.11 (0x00007fb2c77fc000)
libpandaexpress.so.1.11 => /localhome/work/07_cv3/workspace/build/debug/Panda3D/lib/libpandaexpress.so.1.11 (0x00007fb2c76c1000)
libp3prc.so.1.11 => /localhome/work/07_cv3/workspace/build/debug/Panda3D/lib/libp3prc.so.1.11 (0x00007fb2c7692000)
libp3dtool.so.1.11 => /localhome/work/07_cv3/workspace/build/debug/Panda3D/lib/libp3dtool.so.1.11 (0x00007fb2c7648000)
libEGL.so.1 => /lib/x86_64-linux-gnu/libEGL.so.1 (0x00007fb2c7631000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb2c744f000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb2c742c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb2c723a000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb2c82b5000)
libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fb2c7182000)
libCg.so => /lib/x86_64-linux-gnu/libCg.so (0x00007fb2c5ca9000)
libfftw3.so.3 => /lib/x86_64-linux-gnu/libfftw3.so.3 (0x00007fb2c5aa1000)
libvorbisfile.so.3 => /lib/x86_64-linux-gnu/libvorbisfile.so.3 (0x00007fb2c5a96000)
libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007fb2c5a11000)
libtiff.so.5 => /lib/x86_64-linux-gnu/libtiff.so.5 (0x00007fb2c598f000)
libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fb2c5957000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb2c593b000)
libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fb2c5835000)
libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fb2c5776000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb2c5627000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb2c560c000)
libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fb2c5579000)
libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fb2c52a2000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb2c529a000)
libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007fb2c526c000)
libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x00007fb2c525f000)
libwebp.so.6 => /lib/x86_64-linux-gnu/libwebp.so.6 (0x00007fb2c51f5000)
libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007fb2c514c000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fb2c5121000)
libjbig.so.0 => /lib/x86_64-linux-gnu/libjbig.so.0 (0x00007fb2c5110000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fb2c4fe6000)
libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fb2c4fb9000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fb2c4f46000)
Is it a limit of this configuration or am I missing something?
Thanks