VirtualGL / virtualgl

Main VirtualGL repository
https://VirtualGL.org
Other
682 stars 103 forks source link

problem developing 3d app with virtualgl and turbovnc #46

Closed jave closed 7 years ago

jave commented 7 years ago

Hello,

I'm developing a simple 3d application, and my development machine is using turbovnc+virtualgl.

The behaviour is different depending if I develop locally or remotely.

The difference is that if I close the app window created by "Processing", when running locally the process continues as expected. When running through vglrun, the process dies when closing the window.

The exceptions are included below.

The app is using the Quil frontend to the Java variant of the Processing API. Processing is using the Jogamp api for 3D it seems.

The code I'm using is here: git@gitlab.com:jave/forestdream-sketch.git

The problem is mostly an inconvenience, because I need to restart the development environment when I close the app window, which is bothersome but not a complete show-stopper.

Any hint would be appreciated.

/Joakim

user=> (load-file "/home/joakim/forestdream-sketch/src/my_sketch/core.clj") Caught handled GLException: EGLGLXDrawableFactory - Could not initialize shared resources for EGLGraphicsDevice[type .egl, v0.0.0, connection :2.0, unitID 0, handle 0x0, owner true, ResourceToolkitLock[obj 0x628bc963, isOwner true, <27895b56, 521f168e>[count 1, qsz 0, owner ]]] on thread nREPL-worker-1-SharedResourceRunner

[1]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[2]: java.lang.Thread.run(Thread.java:745)

Caused0 by GLException: Failed to created/initialize EGL display incl. fallback default: native 0x0, error 0x3001/0x3001 on thread nREPL-worker-1-SharedResourceRunner

[1]: jogamp.opengl.egl.EGLDisplayUtil.access$300(EGLDisplayUtil.java:58)
[2]: jogamp.opengl.egl.EGLDisplayUtil$1.eglGetAndInitDisplay(EGLDisplayUtil.java:320)
[3]: com.jogamp.nativewindow.egl.EGLGraphicsDevice.open(EGLGraphicsDevice.java:125)
[4]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createEGLSharedResourceImpl(EGLDrawableFactory.java:532)
[5]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createSharedResource(EGLDrawableFactory.java:516)
[6]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[7]: java.lang.Thread.run(Thread.java:745)

Caught handled GLException: EGLGLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :2.0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x5b211efa, isOwner true, <311c6348, 43e89f1e>[count 1, qsz 0, owner ]]] on thread nREPL-worker-1-SharedResourceRunner

[1]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[2]: java.lang.Thread.run(Thread.java:745)

Caused0 by GLException: Failed to created/initialize EGL display incl. fallback default: native 0x0, error 0x3001/0x3001 on thread nREPL-worker-1-SharedResourceRunner

[1]: jogamp.opengl.egl.EGLDisplayUtil.access$300(EGLDisplayUtil.java:58)
[2]: jogamp.opengl.egl.EGLDisplayUtil$1.eglGetAndInitDisplay(EGLDisplayUtil.java:320)
[3]: com.jogamp.nativewindow.egl.EGLGraphicsDevice.open(EGLGraphicsDevice.java:125)
[4]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createEGLSharedResourceImpl(EGLDrawableFactory.java:532)
[5]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createSharedResource(EGLDrawableFactory.java:516)
[6]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[7]: java.lang.Thread.run(Thread.java:745)

'my-sketch.core/my-sketch

user=> Ignoring tag. [VGL] ERROR: in getGLXDrawable-- [VGL] 186: Window has been deleted by window manager Exception in thread "Thread-3" clojure.lang.ExceptionInfo: Subprocess failed {:exit-code 1} at clojure.core$ex_info.invokeStatic(core.clj:4617) at clojure.core$ex_info.invoke(core.clj:4617) at leiningen.core.eval$fn5732.invokeStatic(eval.clj:264) at leiningen.core.eval$fn5732.invoke(eval.clj:260) at clojure.lang.MultiFn.invoke(MultiFn.java:233) at leiningen.core.eval$eval_in_project.invokeStatic(eval.clj:366) at leiningen.core.eval$eval_in_project.invoke(eval.clj:356) at leiningen.repl$server$fn__11838.invoke(repl.clj:243) at clojure.lang.AFn.applyToHelper(AFn.java:152) at clojure.lang.AFn.applyTo(AFn.java:144) at clojure.core$apply.invokeStatic(core.clj:646) at clojure.core$with_bindingsSTAR.invokeStatic(core.clj:1881) at clojure.core$with_bindingsSTAR.doInvoke(core.clj:1881) at clojure.lang.RestFn.invoke(RestFn.java:425) at clojure.lang.AFn.applyToHelper(AFn.java:156) at clojure.lang.RestFn.applyTo(RestFn.java:132) at clojure.core$apply.invokeStatic(core.clj:650) at clojure.core$bound_fnSTAR$fn__4671.doInvoke(core.clj:1911) at clojure.lang.RestFn.invoke(RestFn.java:397) at clojure.lang.AFn.run(AFn.java:22) at java.lang.Thread.run(Thread.java:745)

SocketException The transport's socket appears to have lost its connection to the nREPL server clojure.tools.nrepl.transport/bencode/fn--10199/fn--10200 (transport.clj:95) clojure.tools.nrepl.transport/bencode/fn--10199 (transport.clj:95) clojure.tools.nrepl.transport/fn-transport/fn--10171 (transport.clj:42) clojure.core/binding-conveyor-fn/fn--4676 (core.clj:1938) java.util.concurrent.FutureTask.run (FutureTask.java:266) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617) java.lang.Thread.run (Thread.java:745) Bye for now!

dcommander commented 7 years ago

This is a very obtuse framework. Please provide exact command-line steps to build your application and reproduce the problem.

dcommander commented 7 years ago

Please try the latest pre-release build, since it is likely that the fix for #47 also fixed this:

http://www.virtualgl.org/DeveloperInfo/PreReleases

If not, then I will still need exact steps to get your animation running so I can reproduce the problem.

jave commented 7 years ago

The prerelease fixed my issue. Thanks!