Please test: New JOGL version

Forum for alternative clients, mods & discussions on the same.

Please test: New JOGL version

Postby loftar » Sat Sep 19, 2020 3:30 pm

The version of JOGL currently used by the client is quite old (I haven't updated it since the Salem era), and it seems there are a few interactions with more modern operating systems that are causing problems with it. Unfortunately, the JOGL project hasn't released a stable version for quite some time as well, and as far as I'm aware, the latest stable version doesn't fix any of those problems, which is why I haven't upgraded it. I did realize a while ago that JOGL has nightly builds, however, but there's usually a reason to not use nightly builds, so I've shied away from them, hoping that they'd release a stable version soon enough.

That hasn't happened, though, and checking their development process, it does appear that there are just a few additional bugfixes that are blocking a stable release, so considering those bugs clearly aren't fixed in the old version that I'm using either, I thought it might not hurt to try, but since I don't know just how stable or unstable these JOGL versions are, I'd appreciate if a few people could try it out before I make it the default.

Link to new-JOGL test client

The issues that I'm hoping this will fix include the following:
  • The client not drawing to the whole window when DPI scaling is turned on in Windows
  • Being unable to run the client in newer versions of Java
  • A few crash bugs, such as this, this or this.

I'd be particularly glad if someone on MacOS could test it, since that seems to be the platform with the most JOGL issues. (There probably aren't enough JOGL devs with MacOS.)
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 8926
Joined: Fri Apr 03, 2009 7:05 am

Re: Please test: New JOGL version

Postby wafflecat » Sat Sep 19, 2020 10:00 pm

With 175% scaling in Windows 10 this is the result
Image

Mouse clicks are still calculated based on X and Y relative to center as opposed to the "new" center.

Not sure if this is helpful but yeah, don't have a Mac.
User avatar
wafflecat
 
Posts: 257
Joined: Thu Dec 15, 2011 7:46 pm

Re: Please test: New JOGL version

Postby loftar » Sun Sep 20, 2020 1:41 am

wafflecat wrote:With 175% scaling in Windows 10 this is the result

Huh, so it didn't actually help with the DPI scaling issue? That's a bit disappointing. I was under the impression that it would.

One strange thing is that the nightly builds seem to have stopped back in March. I wonder if I'm still looking in the wrong place.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 8926
Joined: Fri Apr 03, 2009 7:05 am

Re: Please test: New JOGL version

Postby Nightmare » Mon Sep 21, 2020 1:52 pm

This client works on Mac OS Catalina. Success!
Nightmare
 
Posts: 19
Joined: Sat Oct 24, 2009 2:54 pm

Re: Please test: New JOGL version

Postby loftar » Thu Sep 24, 2020 11:35 pm

Well, noone seems to be reporting any problems, so the default client is now switched to the new JOGL version.

I'm a bit bummed that it didn't fix the DPI issue, but it does seem to fix the other issues, so that's all well and good. I might have a workaround coming for the DPI issue, though I'm not sure yet.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 8926
Joined: Fri Apr 03, 2009 7:05 am

Re: Please test: New JOGL version

Postby Astarisk » Fri Sep 25, 2020 3:48 am

loftar wrote:Well, noone seems to be reporting any problems, so the default client is now switched to the new JOGL version.

I'm a bit bummed that it didn't fix the DPI issue, but it does seem to fix the other issues, so that's all and well. I might have a workaround coming for the DPI issue, though I'm not sure yet.

Yeah, I'm pretty sure when Alg looked into the problem himself he noticed that JOGL lacked any new stable build. He also noted it looked like a new one didnt appear to be coming out anytime soon and the nightlys still had no fix for the DPI issue. I remember him saying it was noted somewhere just a fix never done.
IRC/IGN: Rawrz

Join the Haven & Hearth Discord if you need help and our community will surely help you:
Image
Image
User avatar
Astarisk
 
Posts: 869
Joined: Fri Aug 13, 2010 7:08 am

Re: Please test: New JOGL version

Postby rocketyock » Mon Sep 28, 2020 4:48 pm

I can't run it on macOS Catalina 10.15.7. Tried different things but it still won't run. Tried Ender, Amber and the default one on JDK8/JDK15 with Extensions, etc. This is what I see when I run the default one:
Image


When I try to run Ender or Amber:
Image


UPD:
Tried Purus Pasta with this viewtopic.php?f=49&t=54688 still won't run
rocketyock
 
Posts: 2
Joined: Wed Apr 15, 2020 5:50 pm

Re: Please test: New JOGL version

Postby loftar » Mon Sep 28, 2020 5:54 pm

rocketyock wrote:[blank window]

Looks like it's stuck somewhere. As such, a thread dump would be extremely helpful for debugging. I don't know exactly how you're running this, nor exactly how Java on MacOS works, but usually if you run the Java process in a terminal on Unix-like systems, you press Ctrl+Backslash (or otherwise send the java process a SIGQUIT) to make it output a thread dump to the terminal.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 8926
Joined: Fri Apr 03, 2009 7:05 am

Re: Please test: New JOGL version

Postby rocketyock » Mon Sep 28, 2020 7:48 pm

loftar wrote:
rocketyock wrote:[blank window]

Looks like it's stuck somewhere. As such, a thread dump would be extremely helpful for debugging. I don't know exactly how you're running this, nor exactly how Java on MacOS works, but usually if you run the Java process in a terminal on Unix-like systems, you press Ctrl+Backslash (or otherwise send the java process a SIGQUIT) to make it output a thread dump to the terminal.


Hi Loftar!

Here is the thread dump, but, I am not sure is it exactly what you want to see or not.
Code: Select all
2020-09-28 21:45:02
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.261-b12 mixed mode):

"Attach Listener" #33 daemon prio=9 os_prio=31 tid=0x00007fd0e1a3a800 nid=0x1ff07 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Render thread" #30 prio=5 os_prio=31 tid=0x00007fd0e2ce5000 nid=0xf003 in Object.wait() [0x000070000869c000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x00000007806b9670> (a java.awt.EventQueue$1AWTInvocationLock)
   at java.lang.Object.wait(Object.java:502)
   at java.awt.EventQueue.invokeAndWait(EventQueue.java:1343)
   - locked <0x00000007806b9670> (a java.awt.EventQueue$1AWTInvocationLock)
   at java.awt.EventQueue.invokeAndWait(EventQueue.java:1324)
   at com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:53)
   at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
   at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:201)
   at com.jogamp.opengl.Threading.invokeOnOpenGLThread(Threading.java:202)
   at com.jogamp.opengl.Threading.invoke(Threading.java:221)
   at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:503)
   at haven.JOGLPanel.uglyjoglhack(JOGLPanel.java:295)
   at haven.JOGLPanel.renderloop(JOGLPanel.java:306)
   at haven.JOGLPanel$$Lambda$40/2005635281.run(Unknown Source)
   at java.lang.Thread.run(Thread.java:748)

   Locked ownable synchronizers:
   - None

"Haven UI thread" #29 prio=5 os_prio=31 tid=0x00007fd0e2ced000 nid=0xee03 in Object.wait() [0x0000700008599000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x000000078065c278> (a haven.JOGLPanel)
   at java.lang.Object.wait(Object.java:502)
   at haven.JOGLPanel.run(JOGLPanel.java:460)
   - locked <0x000000078065c278> (a haven.JOGLPanel)
   at java.lang.Thread.run(Thread.java:748)

   Locked ownable synchronizers:
   - None

"Haven main thread" #25 prio=5 os_prio=31 tid=0x00007fd0e2ce8000 nid=0xed07 in Object.wait() [0x0000700008496000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x00000007808fb980> (a java.util.LinkedList)
   at java.lang.Object.wait(Object.java:502)
   at haven.Bootstrap.run(Bootstrap.java:131)
   - locked <0x00000007808fb980> (a java.util.LinkedList)
   at haven.MainFrame.run(MainFrame.java:257)
   at java.lang.Thread.run(Thread.java:748)

   Locked ownable synchronizers:
   - None

"Timer-0" #23 daemon prio=5 os_prio=31 tid=0x00007fd0e2bbf000 nid=0xe703 in Object.wait() [0x0000700008393000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   at java.lang.Object.wait(Object.java:502)
   at java.util.TimerThread.mainLoop(Timer.java:526)
   - locked <0x000000078088f5a8> (a java.util.TaskQueue)
   at java.util.TimerThread.run(Timer.java:505)

   Locked ownable synchronizers:
   - None

"DestroyJavaVM" #18 prio=5 os_prio=31 tid=0x00007fd0e1a3b000 nid=0xd03 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Haven main thread" #17 prio=5 os_prio=31 tid=0x00007fd0e1a2b800 nid=0xe313 in Object.wait() [0x000070000808a000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x00000007808a1358> (a haven.HackThread)
   at java.lang.Thread.join(Thread.java:1252)
   - locked <0x00000007808a1358> (a haven.HackThread)
   at java.lang.Thread.join(Thread.java:1326)
   at haven.MainFrame.main2(MainFrame.java:396)
   at haven.MainFrame.access$000(MainFrame.java:35)
   at haven.MainFrame$7.run(MainFrame.java:435)
   at java.lang.Thread.run(Thread.java:748)

   Locked ownable synchronizers:
   - None

"Deadlock watchdog" #16 daemon prio=5 os_prio=31 tid=0x00007fd0e116d000 nid=0xe42b waiting on condition [0x0000700007f87000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
   at java.lang.Thread.sleep(Native Method)
   at haven.DeadlockWatchdog.run(DeadlockWatchdog.java:87)

   Locked ownable synchronizers:
   - None

"AWT-EventQueue-0" #15 prio=6 os_prio=31 tid=0x00007fd0e2b47000 nid=0xd503 in Object.wait() [0x0000700007e83000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x00000007aac974c8> (a jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl$SetNSViewCmd)
   at java.lang.Object.wait(Object.java:502)
   at jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl.contextMadeCurrent(MacOSXCGLContext.java:1102)
   - locked <0x00000007aac974c8> (a jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl$SetNSViewCmd)
   at jogamp.opengl.macosx.cgl.MacOSXCGLContext.contextMadeCurrent(MacOSXCGLContext.java:337)
   at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:720)
   at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:591)
   at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1279)
   at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
   at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1442)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
   at java.awt.EventQueue.access$500(EventQueue.java:97)
   at java.awt.EventQueue$3.run(EventQueue.java:709)
   at java.awt.EventQueue$3.run(EventQueue.java:703)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

   Locked ownable synchronizers:
   - <0x00000007808f8f00> (a jogamp.common.util.locks.RecursiveLockImpl01Unfairish$SingleThreadSync)

"Java2D Disposer" #14 daemon prio=10 os_prio=31 tid=0x00007fd0e21e9800 nid=0xd10f in Object.wait() [0x0000700007d81000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x00000007805f4958> (a java.lang.ref.ReferenceQueue$Lock)
   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
   - locked <0x00000007805f4958> (a java.lang.ref.ReferenceQueue$Lock)
   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
   at sun.java2d.Disposer.run(Disposer.java:148)
   at java.lang.Thread.run(Thread.java:748)

   Locked ownable synchronizers:
   - None

"Java2D Queue Flusher" #13 daemon prio=10 os_prio=31 tid=0x00007fd0e120c800 nid=0x12907 in Object.wait() [0x0000700007c7e000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:203)
   - locked <0x00000007805dab30> (a sun.java2d.opengl.OGLRenderQueue$QueueFlusher)

   Locked ownable synchronizers:
   - None

"Error reporter" #12 daemon prio=5 os_prio=31 tid=0x00007fd0e2ae8000 nid=0xc70b in Object.wait() [0x0000700007b7b000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x00000007808a1d88> (a java.util.LinkedList)
   at java.lang.Object.wait(Object.java:502)
   at haven.error.ErrorHandler$Reporter.run(ErrorHandler.java:78)
   - locked <0x00000007808a1d88> (a java.util.LinkedList)

   Locked ownable synchronizers:
   - None

"AWT-Shutdown" #11 prio=5 os_prio=31 tid=0x00007fd0e192a000 nid=0x661b in Object.wait() [0x0000700007766000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x00000007805db1f0> (a java.lang.Object)
   at java.lang.Object.wait(Object.java:502)
   at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:295)
   - locked <0x00000007805db1f0> (a java.lang.Object)
   at java.lang.Thread.run(Thread.java:748)

   Locked ownable synchronizers:
   - None

"AWT-AppKit" #10 daemon prio=5 os_prio=31 tid=0x00007fd0e1146000 nid=0x307 runnable [0x00007ffee6329000]
   java.lang.Thread.State: RUNNABLE
   at sun.lwawt.macosx.LWCToolkit.doAWTRunLoopImpl(Native Method)
   at sun.lwawt.macosx.LWCToolkit.doAWTRunLoop(LWCToolkit.java:842)
   at sun.lwawt.macosx.LWCToolkit.invokeAndWait(LWCToolkit.java:642)
   at sun.lwawt.macosx.CPlatformWindow.flushBuffers(CPlatformWindow.java:986)
   at sun.lwawt.macosx.CPlatformWindow.deliverMoveResizeEvent(CPlatformWindow.java:1041)

   Locked ownable synchronizers:
   - None

"Service Thread" #9 daemon prio=9 os_prio=31 tid=0x00007fd0e183e000 nid=0x3d03 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"C1 CompilerThread3" #8 daemon prio=9 os_prio=31 tid=0x00007fd0e2827000 nid=0x3b03 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"C2 CompilerThread2" #7 daemon prio=9 os_prio=31 tid=0x00007fd0e1821000 nid=0x3903 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"C2 CompilerThread1" #6 daemon prio=9 os_prio=31 tid=0x00007fd0e203b000 nid=0x3703 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"C2 CompilerThread0" #5 daemon prio=9 os_prio=31 tid=0x00007fd0e101d800 nid=0x4203 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Signal Dispatcher" #4 daemon prio=9 os_prio=31 tid=0x00007fd0e100a000 nid=0x3503 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Finalizer" #3 daemon prio=8 os_prio=31 tid=0x00007fd0e181e000 nid=0x4d03 in Object.wait() [0x0000700006e48000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x00000007808e9cf8> (a java.lang.ref.ReferenceQueue$Lock)
   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
   - locked <0x00000007808e9cf8> (a java.lang.ref.ReferenceQueue$Lock)
   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
   at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)

   Locked ownable synchronizers:
   - None

"Reference Handler" #2 daemon prio=10 os_prio=31 tid=0x00007fd0e181b000 nid=0x3003 in Object.wait() [0x0000700006d45000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x00000007808a4268> (a java.lang.ref.Reference$Lock)
   at java.lang.Object.wait(Object.java:502)
   at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
   - locked <0x00000007808a4268> (a java.lang.ref.Reference$Lock)
   at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

   Locked ownable synchronizers:
   - None

"VM Thread" os_prio=31 tid=0x00007fd0e400a800 nid=0x4f03 runnable

"GC task thread#0 (ParallelGC)" os_prio=31 tid=0x00007fd0e280f000 nid=0x1e07 runnable

"GC task thread#1 (ParallelGC)" os_prio=31 tid=0x00007fd0e2810000 nid=0x2303 runnable

"GC task thread#2 (ParallelGC)" os_prio=31 tid=0x00007fd0e2810800 nid=0x2003 runnable

"GC task thread#3 (ParallelGC)" os_prio=31 tid=0x00007fd0e180c000 nid=0x2a03 runnable

"GC task thread#4 (ParallelGC)" os_prio=31 tid=0x00007fd0e180f000 nid=0x5403 runnable

"GC task thread#5 (ParallelGC)" os_prio=31 tid=0x00007fd0e1810000 nid=0x5303 runnable

"GC task thread#6 (ParallelGC)" os_prio=31 tid=0x00007fd0e1810800 nid=0x2d03 runnable

"GC task thread#7 (ParallelGC)" os_prio=31 tid=0x00007fd0e2811000 nid=0x2e03 runnable

"VM Periodic Task Thread" os_prio=31 tid=0x00007fd0e281a000 nid=0x3f03 waiting on condition

JNI global references: 590
rocketyock
 
Posts: 2
Joined: Wed Apr 15, 2020 5:50 pm

Re: Please test: New JOGL version

Postby loftar » Wed Sep 30, 2020 12:36 pm

rocketyock wrote:Here is the thread dump, but, I am not sure is it exactly what you want to see or not.

It was what I was looking for, thanks.

rocketyock wrote:
Code: Select all
"AWT-EventQueue-0" #15 prio=6 os_prio=31 tid=0x00007fd0e2b47000 nid=0xd503 in Object.wait() [0x0000700007e83000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on <0x00000007aac974c8> (a jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl$SetNSViewCmd)
   at java.lang.Object.wait(Object.java:502)
   at jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl.contextMadeCurrent(MacOSXCGLContext.java:1102)
   - locked <0x00000007aac974c8> (a jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl$SetNSViewCmd)
   at jogamp.opengl.macosx.cgl.MacOSXCGLContext.contextMadeCurrent(MacOSXCGLContext.java:337)
   at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:720)
   at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:591)
   at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1279)
   at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
   [...]

It seems that JOGL itself is stuck on some MacOS-specific codepath. Looking at the code involved, it seems to be related to an attempted fix for a known JOGL bug. I notice that there's a separate branch in JOGL's repos named for this bug, though, so I'd kind of assume they know this fix is broken and are trying to fix it properly, separately, but that branch hasn't been merged yet. Since this is MacOS, it's not really possible for me to try and debug it myself, so I'm not currently sure what I could do about it.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 8926
Joined: Fri Apr 03, 2009 7:05 am

Next

Return to The Wizards' Tower

Who is online

Users browsing this forum: No registered users and 10 guests