luiscastilho / dungeoneering

Free and slimmed down virtual tabletop (VTT) that can be used as a combat grid and as a dungeon exploration tool, made for local, in-person tabletop RPG sessions
https://dungeoneering.app
GNU General Public License v3.0
45 stars 3 forks source link

Running on arch gives black screen only #4

Closed BlueDrink9 closed 3 years ago

BlueDrink9 commented 3 years ago

I'm running this on Arch linux, using bspwm. I installed gstreamer0.10 from the AUR. Opening dungeoneering gives a blank black screen.

This is the log from running it in terminal

Display 2 does not exist, using the default display instead.
Display 1 is X11GraphicsDevice[screen=0]
java.lang.RuntimeException: Profile GL4bc is not available on X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x7fd070010070, owner true, ResourceToolkitLock[obj 0x5fff2c04, isOwner true, <5bc0a323, 1ec2263f>[count 1, qsz 0, owner <main-FPSAWTAnimator#00-Timer0>]]], but: [GLProfile[GLES1/GLES1.hw], GLProfile[GLES2/GLES3.hw], GLProfile[GL2ES1/GLES1.hw], GLProfile[GL4ES3/GL4.hw], GLProfile[GL2ES2/GL4.hw], GLProfile[GL4/GL4.hw], GLProfile[GLES3/GLES3.hw], GLProfile[GL4/GL4.hw], GLProfile[GL3/GL4.hw], GLProfile[GL2GL3/GL4.hw]]
    at processing.opengl.PSurfaceJOGL$2.run(PSurfaceJOGL.java:410)
    at java.lang.Thread.run(Thread.java:748)
com.jogamp.opengl.GLException: Profile GL4bc is not available on X11GraphicsDevice[type.x11, connection :0, unitID 0, handle 0x7fd070010070, owner true, ResourceToolkitLock[obj 0x5fff2c04, isOwner true, <5bc0a323, 1ec2263f>[count 1, qsz 0, owner <main-Display-.x11_:0-1-EDT-1>]]], but: [GLProfile[GLES1/GLES1.hw], GLProfile[GLES2/GLES3.hw], GLProfile[GL2ES1/GLES1.hw], GLProfile[GL4ES3/GL4.hw], GLProfile[GL2ES2/GL4.hw], GLProfile[GL4/GL4.hw], GLProfile[GLES3/GLES3.hw], GLProfile[GL4/GL4.hw], GLProfile[GL3/GL4.hw], GLProfile[GL2GL3/GL4.hw]]
    at com.jogamp.opengl.GLProfile.get(GLProfile.java:991)
    at jogamp.opengl.GLContextImpl.verifyInstance(GLContextImpl.java:1471)
    at jogamp.opengl.GLContextImpl.setGLFunctionAvailability(GLContextImpl.java:1942)
    at jogamp.opengl.x11.glx.X11GLXContext.createImpl(X11GLXContext.java:395)
    at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:765)
    at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:648)
    at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:586)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1279)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
    at jogamp.opengl.GLAutoDrawableBase.defaultWindowRepaintOp(GLAutoDrawableBase.java:215)
    at com.jogamp.newt.opengl.GLWindow.access$100(GLWindow.java:119)
    at com.jogamp.newt.opengl.GLWindow$2.windowRepaint(GLWindow.java:136)
    at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:4401)
    at jogamp.newt.WindowImpl.consumeEvent(WindowImpl.java:3372)
    at jogamp.newt.WindowImpl.doEvent(WindowImpl.java:3318)
    at jogamp.newt.WindowImpl.windowRepaint(WindowImpl.java:4715)
    at jogamp.newt.driver.x11.DisplayDriver.DispatchMessages0(Native Method)
    at jogamp.newt.driver.x11.DisplayDriver.dispatchMessagesNative(DisplayDriver.java:112)
    at jogamp.newt.DisplayImpl.dispatchMessages(DisplayImpl.java:753)
    at jogamp.newt.DisplayImpl$7.run(DisplayImpl.java:672)
    at jogamp.newt.DefaultEDTUtil$NEDT.run(DefaultEDTUtil.java:347)
BlueDrink9 commented 3 years ago

hs_err_pid76977.log

The crash for this log comes when I close the app window, not when I start it.

luiscastilho commented 3 years ago

Hey @BlueDrink9, Thanks for trying dungeoneering. And sorry it didn't work on your system.

As you can probably tell from the error above I use Processing under the hood, more specifically version 3.5.4 with renderer P2D. From Processing docs:

P2D (Processing 2D): 2D graphics renderer that makes use of OpenGL-compatible graphics hardware.

The exception occurs before dungeoneering is loaded, probably when Processing is trying to create a window to "host" the application. So not much I can do in dungeoneering code to fix this.

You can create an issue in Processing repository and see if they can help. I found a few people that ran into similar errors, like here and here. Maybe these discussions can help you find a solution.

When Processing 4 gets stable (in beta now) I plan on updating dungeoneering to use it. It might help as well. But it might take a while I imagine.

BlueDrink9 commented 3 years ago

Thank you

luiscastilho commented 3 years ago

No problem. Let me know if you find a fix please. Maybe it's something I can incorporate into dungeoneering.

BlueDrink9 commented 3 years ago

That directed me to a working solution. LIBGL_ALWAYS_SOFTWARE=1 ./dungeoneering

On my tiling WM, the software doesn't resize well. I'll work around it. Looking forward to trying it out!