3Dickulus / FragM

Derived from https://github.com/Syntopia/Fragmentarium/
GNU General Public License v3.0
344 stars 30 forks source link

Attempting to build on google collab #183

Closed gschian0 closed 1 year ago

gschian0 commented 2 years ago

HI!
I have a google cloud pro + subscription and I'm working on installing this. When I run !make install I get this error `] 19s !make install [ 1%] Automatic MOC and UIC for target Fragmentarium-2.5.6 ... [ 35%] Building CXX object CMakeFiles/Fragmentarium-2.5.6.dir/Fragmentarium/GUI/CameraControl.cpp.o /content/FragM/Fragmentarium-Source/Fragmentarium/GUI/CameraControl.cpp: In member function ‘virtual bool Fragmentarium::GUI::Camera3D::parseKeys()’: /content/FragM/Fragmentarium-Source/Fragmentarium/GUI/CameraControl.cpp:206:29: error: ‘identity’ is not a member of ‘glm’ glm::dmat4 m = glm::identity(); ^~~~ ...

CMakeFiles/Fragmentarium-2.5.6.dir/build.make:228: recipe for target 'CMakeFiles/Fragmentarium-2.5.6.dir/Fragmentarium/GUI/CameraControl.cpp.o' failed make[2]: [CMakeFiles/Fragmentarium-2.5.6.dir/Fragmentarium/GUI/CameraControl.cpp.o] Error 1 CMakeFiles/Makefile2:110: recipe for target 'CMakeFiles/Fragmentarium-2.5.6.dir/all' failed make[1]: [CMakeFiles/Fragmentarium-2.5.6.dir/all] Error 2 Makefile:135: recipe for target 'all' failed make: *** [all] Error 2` thanks for any help in advance!

-Gennaro

3Dickulus commented 2 years ago

dmat4 is defined in ...

/usr/include/glm/fwd.hpp: typedef mat<4, 4, f64, defaultp> dmat4;

the file is in glm-devel package version 0.9.9.8

you need to have glm-devel package installed

try uncommenting line 48 in CMakeLists.txt

find_package ( glm REQUIRED )

What OS ? linux windows mac ?

gschian0 commented 2 years ago

I have been running graphical fractal programs on google collab... so Linux! I will try this!

gschian0 commented 2 years ago

I have been having good results running windows vcxsrv and using google gpu with other fractal apps and can GUI sent to my computer over port 6000... I want to include FragM in some colab notebooks I give to some of my artist friends to inspire them to learn about fractals and linux and get high end rendering on the cloud for cheap without banging their heads watching the computer compile. Any help would be appreciated.

gschian0 commented 2 years ago

I am getting the same error... I think it has to do with GLM version ... I think my version is higher than 9.9.8 can you help me figure out how to install version 9.9.8?

gschian0 commented 2 years ago

I had success with the INSTALL... I get the 2 first windows open... but as soon as I press ok I loose connection... is there a way to disable the intro window and go straight to the application? here is a link to the colab notebook gist. https://colab.research.google.com/gist/gschian0/141d39522834f9f828f33132af9c6e5f/fragm.ipynb#scrollTo=rgWxouBUAw_N

this is EXCITING!!! thanks for any help and this app!

gschian0 commented 2 years ago

ok... a new error... QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' failed to get the current screen resources QXcbConnection: XCB error: 170 (Unknown), sequence: 170, resource id: 90, major code: 146 (Unknown), minor code: 20 WARNING: Application calling GLX 1.3 function "glXCreatePbuffer" when GLX 1.3 is not supported! This is an application bug! Segmentation fault. Fragmentarium crashed!

I just confirmed it's not a windowing issue for sure... going back to using multiple windows in vcxsrv

3Dickulus commented 2 years ago

The intro (splash screen) closes immediately when the main window opens, according to the logs at the above colab link everything builds and installs properly however...

Application calling GLX 1.3 function "glXCreatePbuffer" when GLX 1.3 is not supported! This is an application bug!

...seems odd because nowhere in the source code does FragM call glXCreatePbuffer ? ? ? so how is it an application bug ? ? ? sounds more like the container setup that defines what OS and hardware you are assigned in the system emulation (just a guess)

You may have to change the CMakeLists.txt @ line 50 from OpenGL_GL_PREFERENCE "LEGACY" to OpenGL_GL_PREFERENCE "GLVND" and recompile everything, rm -rf * .* in the build folder first.

If you are not using an IDE or cmake-gui then...

  cd FragM/Fragmentarium-Source
  mkdir build
  cd build
  cmake -DOpenGL_GL_PREFERENCE=GLVND -DUSE_OPEN_EXR=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..
  make install

It also looks like you are running it from the source folder, that's wrong, cd to the install location where Fragmentarium-2.5.6 executable is and run it there, it installs everything FragM needs in that folder so that you can easily move it to anywhere you like by copying or moving that folder. Run like...

cd /usr/local/Fragmentarium-2.5.6

./Fragmentarium-2.5.6

It is not designed specifically to use a remote display so !export DISPLAY=73.56.196.33:0.0 && ./Fragmentarium-2.5.6 may not be possible.

I have no experience with google colab or running FragM in the cloud, it's not designed with that in mind, there are prebuilt binary packages for linux and windows under "releases" and that is all I "officially" support.

gschian0 commented 2 years ago

Thanks for taking your time to explain this to me! I’m going to see if I can make it work with the information you provided.

3Dickulus commented 2 years ago

I am interested to hear about your results :)

oh, and when running from /usr/local/Fragmentarium/ make sure you have write access on that folder