digego / extempore

A cyber-physical programming environment
1.41k stars 127 forks source link

gui example crashing on gui_init #397

Open dfarmer opened 3 years ago

dfarmer commented 3 years ago

This is my first time using extempore in several years but I was able to get up & running with the quickstart pretty well and everything was working. Trying to run the gui.xtm sample though is giving me problems. The sys:load call seems to work and everything is compiled fine, but when I issue the (gui_init 800 600) the OpenGL window is displayed for a second and then closes and the extempore process seems to crash but there are no errors logged or anything so it's a little hard for me to know what else I can report. I'm on Windows 10, no issues with OpenGL / DirectX anywhere else (nvidia graphics card). If there's any way I can run it so that I'll get a backtrace I'd be happy to.

benswift commented 3 years ago

Thanks for the heads up. That example is one I haven't touched in a while, so I'm not too surprised if it's broken. I can have a look into it when I get a chance.

To get a backtrace, you'll need to build with debug symbols (-DCMAKE_BUILD_TYPE=Debug, or just select Debug configuration in Visual Studio) and then run extempore under a debugger.

If you're after something in particular about this example then that's the way to go, anyway. If you're just looking around different examples and wondering why this one isn't working, the answer is that it may well not be your fault. Sorry that I can't be more helpful (I don't have a Windows box handy rn), but will have a look when I get a chance.

dfarmer commented 3 years ago

It seems to just be a bug in nanovg itself... seems to be dereferencing a null pointer when it's trying to set up the initial render shader... image

benswift commented 3 years ago

Ok, thanks for digging in to it.

CastixGitHub commented 3 years ago

This example doesn't work either on linux Here's the log I got with -DCMAKE_BUILD_TYPE=Debug

Compiled:  gui_render_loop >>> [void,i64,double]*
Compiled:  gui_shutdown >>> [i8*]*
GLFW error 65544: Wayland: Failed to connect to display
GLFW error 65544: Wayland: Failed to connect to display
GLFW error 65537: The GLFW library is not initialized
GLFW error 65537: The GLFW library is not initialized
GLFW error 65537: The GLFW library is not initialized
GLFW error 65537: The GLFW library is not initialized
GLFW error 65537: The GLFW library is not initialized
[1]    34352 abort (core dumped)  ./extempore

I do have wayland 1.19.0-1 installed but i'm in a Xorg session right now

benswift commented 3 years ago

hey all, as a temporary (and existentially unsatisfying) fix, I've moved the gui.xtm stuff into the contrib folder in 3b77d165510efeac4d785f2ba1ebcae0fca8ba75

Since it's a bit complicated and may require upstream fixes from nanovg (although since the version of nanovg we use is a bit old now it might not be too hard) it might be a little while before we have a more satisfying fix (although if anyone gets to the bottom of it do let me know 😄).