hyperlogic / splatapult

A 3d gaussian splatting renderer in C++ and OpenGL
MIT License
89 stars 12 forks source link

Compilation errors on Linux. #2

Closed JiamingSuen closed 6 months ago

JiamingSuen commented 7 months ago

I understand that this project may not be targeted to Linux. I'm just putting this information here for anyone who may be interested.

base ❯ make -j
[ 13%] Building CXX object CMakeFiles/splatapult.dir/src/core/image.cpp.o
[ 13%] Building CXX object CMakeFiles/splatapult.dir/src/core/debugrenderer.cpp.o
[ 18%] Building CXX object CMakeFiles/splatapult.dir/src/core/inputbuddy.cpp.o
[ 18%] Building CXX object CMakeFiles/splatapult.dir/src/core/log.cpp.o
[ 27%] Building CXX object CMakeFiles/splatapult.dir/src/core/program.cpp.o
[ 27%] Building CXX object CMakeFiles/splatapult.dir/src/core/texture.cpp.o
[ 31%] Building CXX object CMakeFiles/splatapult.dir/src/core/util.cpp.o
[ 40%] Building CXX object CMakeFiles/splatapult.dir/src/core/vertexbuffer.cpp.o
[ 40%] Building CXX object CMakeFiles/splatapult.dir/src/app.cpp.o
[ 50%] Building CXX object CMakeFiles/splatapult.dir/src/core/textrenderer.cpp.o
[ 50%] Building CXX object CMakeFiles/splatapult.dir/src/core/xrbuddy.cpp.o                                                                           [ 54%] Building CXX object CMakeFiles/splatapult.dir/src/ply.cpp.o
[ 59%] Building CXX object CMakeFiles/splatapult.dir/src/camerasconfig.cpp.o
[ 63%] Building CXX object CMakeFiles/splatapult.dir/src/gaussiancloud.cpp.o
[ 68%] Building CXX object CMakeFiles/splatapult.dir/src/magiccarpet.cpp.o
[ 77%] Building CXX object CMakeFiles/splatapult.dir/src/flycam.cpp.o
[ 77%] Building CXX object CMakeFiles/splatapult.dir/src/pointcloud.cpp.o
[ 81%] Building CXX object CMakeFiles/splatapult.dir/src/pointrenderer.cpp.o
[ 86%] Building CXX object CMakeFiles/splatapult.dir/src/sdl_main.cpp.o
[ 90%] Building CXX object CMakeFiles/splatapult.dir/src/splatrenderer.cpp.o
[ 95%] Building CXX object CMakeFiles/splatapult.dir/src/vrconfig.cpp.o
In file included from /home/sunjiaming/Repositories/splatapult/src/core/inputbuddy.cpp:6:
/home/sunjiaming/Repositories/splatapult/src/core/inputbuddy.h: In constructor ‘InputBuddy::Joypad::Joypad()’:
/home/sunjiaming/Repositories/splatapult/src/core/inputbuddy.h:46:13: error: ‘memset’ was not declared in this scope
   46 |             memset(this, 0, sizeof(Joypad));
      |             ^~~~~~
/home/sunjiaming/Repositories/splatapult/src/core/inputbuddy.h:11:1: note: ‘memset’ is defined in header ‘<cstring>’; did you forget to ‘#include <cst
ring>’?                                                                                                                                                  10 | #include <map>
  +++ |+#include <cstring>
   11 | #include <stdint.h>
In file included from /home/sunjiaming/Repositories/splatapult/src/core/xrbuddy.h:33,
                 from /home/sunjiaming/Repositories/splatapult/src/core/xrbuddy.cpp:6:
/usr/include/openxr/openxr_platform.h:114:5: error: ‘Display’ does not name a type                                                                      114 |     Display*                    xDisplay;
      |     ^~~~~~~                                                                                                                                   /usr/include/openxr/openxr_platform.h:116:5: error: ‘GLXFBConfig’ does not name a type
  116 |     GLXFBConfig                 glxFBConfig;
      |     ^~~~~~~~~~~
/usr/include/openxr/openxr_platform.h:117:5: error: ‘GLXDrawable’ does not name a type
  117 |     GLXDrawable                 glxDrawable;
      |     ^~~~~~~~~~~
/usr/include/openxr/openxr_platform.h:118:5: error: ‘GLXContext’ does not name a type
  118 |     GLXContext                  glxContext;
      |     ^~~~~~~~~~

Environment information:

base ❯ c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)
saimouli commented 6 months ago

any support for linux? I am facing similar issues during compilation

hyperlogic commented 6 months ago

Re-opening, I'll try to get this working. I don't have a true Linux system handy. I'll try under wsl2 or a chromebook.

hyperlogic commented 6 months ago

I just pushed 53825deb8e9d4daad5f1b75a52ef00c4dccf3ea7 on the feature/linux branch. It's not fully tested because I don't have a working Linux install that supports OpenGL 4.6. Also, OpenXR support is explicitly not implemented yet.

Let me know if this does or does not work for you.

JiamingSuen commented 6 months ago

Thanks for your rapid response. It works perfectly (except for the fps indicator which is blank)!

image
hyperlogic commented 6 months ago

The fps counter doesn't display until 100 frames have rendered, it should show up eventually. The feature/linux branch has been merged into main.