Multiple GLCanvas/FPSAnimator Hang

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Multiple GLCanvas/FPSAnimator Hang

sfriend
When using multiple GLCanvas with FPSAnimators it hangs about 10 percent of the time when creating the context for the new GLCanvas. This is running on Windows XP with AMD E4690 graphics device.

It always fails at the same location and always produces the following exception:
Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: javax.media.opengl.GLException: JOGL-GLWorkerThread-: WindowsWGLContex.createContextImpl ctx !ARB, profile > GL2 requested (OpenGL >= 3.0.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 1.1 (Compat profile, hardware) - 1.1.0

The previously opened GLCanvas/FPSAnimator continues to function properly, however any attempts to create new ones fail with the same problem.

More of the log with debug and Traceswitch follows:
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - obj 0x15b9e1c, ctx 0x1000b
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.X3]: obj 0x15b9e1c, ctx 0x1000b, surf 0x5701012b - switch - CONTEXT_CURRENT - stateTracker.on true - <11496a4, ae0228>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.0]: obj 0x15b9e1c, ctx 0x1000b, surf 0x5701012b, inDestruction: false, <11496a4, ae0228>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - NULL
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.X]: obj 0x15b9e1c, ctx 0x1000b, surf 0x0 - switch - <11496a4, ae0228>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x10bf5a4, ctx 0x10008, surf 0x0 - <1baba00, 9739c>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - obj 0x10bf5a4, ctx 0x10008
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.X3]: obj 0x10bf5a4, ctx 0x10008, surf 0xc6010c9a - switch - CONTEXT_CURRENT - stateTracker.on true - <1baba00, 9739c>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.0]: obj 0x10bf5a4, ctx 0x10008, surf 0xc6010c9a, inDestruction: false, <1baba00, 9739c>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - NULL
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.X]: obj 0x10bf5a4, ctx 0x10008, surf 0x0 - switch - <1baba00, 9739c>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x1f2e931, ctx 0x1000d, surf 0x0 - <159faab, 57f86c>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - obj 0x1f2e931, ctx 0x1000d
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.X3]: obj 0x1f2e931, ctx 0x1000d, surf 0x620108bb - switch - CONTEXT_CURRENT - stateTracker.on true - <159faab, 57f86c>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.0]: obj 0x1f2e931, ctx 0x1000d, surf 0x620108bb, inDestruction: false, <159faab, 57f86c>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - NULL
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.X]: obj 0x1f2e931, ctx 0x1000d, surf 0x0 - switch - <159faab, 57f86c>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x874df9, ctx 0x10009, surf 0x0 - <13a54bf, 91e3ec>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - obj 0x874df9, ctx 0x10009
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.X3]: obj 0x874df9, ctx 0x10009, surf 0xc6010c9a - switch - CONTEXT_CURRENT - stateTracker.on true - <13a54bf, 91e3ec>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.0]: obj 0x874df9, ctx 0x10009, surf 0xc6010c9a, inDestruction: false, <13a54bf, 91e3ec>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - NULL
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.X]: obj 0x874df9, ctx 0x10009, surf 0x0 - switch - <13a54bf, 91e3ec>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x15b9e1c, ctx 0x1000b, surf 0x0 - <11496a4, ae0228>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - obj 0x15b9e1c, ctx 0x1000b
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.X3]: obj 0x15b9e1c, ctx 0x1000b, surf 0x620108bb - switch - CONTEXT_CURRENT - stateTracker.on true - <11496a4, ae0228>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.0]: obj 0x15b9e1c, ctx 0x1000b, surf 0x620108bb, inDestruction: false, <11496a4, ae0228>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - NULL
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.X]: obj 0x15b9e1c, ctx 0x1000b, surf 0x0 - switch - <11496a4, ae0228>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x874df9, ctx 0x10009, surf 0x0 - <13a54bf, 91e3ec>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - obj 0x874df9, ctx 0x10009
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.X3]: obj 0x874df9, ctx 0x10009, surf 0xc6010c9a - switch - CONTEXT_CURRENT - stateTracker.on true - <13a54bf, 91e3ec>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.0]: obj 0x874df9, ctx 0x10009, surf 0xc6010c9a, inDestruction: false, <13a54bf, 91e3ec>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - NULL
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.X]: obj 0x874df9, ctx 0x10009, surf 0x0 - switch - <13a54bf, 91e3ec>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x186728d, ctx 0x0, surf 0x0 - <1f56ae9, 13dec1a>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: createImpl: START GLCaps[wgl vid 0x2 arb: rgba 8/8/8/8, trans-rgba 0x0/0/0/0, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL3bc/GL3bc.hw], on-scr[.]], share WindowsWGLContext [Version 3.3 (Compat profile, arb, ES2 compat, FBO, hardware) - 3.3.11631 Compatibility Profile Context [GL 3.3.0, vendor 0.0.0 (n/a)], options 0x1403, this 0x132bb00, handle 0x20000, isShared true, jogamp.opengl.gl4.GL4bcImpl@18c4765,
         quirks: [NoDoubleBufferedBitmap, NeedCurrCtx4ARBPixFmtQueries, NeedCurrCtx4ARBCreateContext],
        Drawable: WindowsPbufferWGLDrawable[Realized true,
        Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@c17f01,
        Handle    0xc010b52,
        Surface   WrappedSurface[ displayHandle 0x0
, surfaceHandle 0xc010b52
, size 1x1
, UOB[ OWNS_DEVICE ]
, WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3bc/GL3bc.hw], offscr[pbuffer]],
        chosen    GLCaps[wgl vid 0x2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL3bc/GL3bc.hw], offscr[pbuffer]]]
, surfaceLock <851004, 1de8c6b>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
, UpstreamSurfaceHookMutableSize[ 1x1]
, upstreamSurface false ]]]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x15348fb, ctx 0x20007, surf 0x0 - <dc7d5f, 1ab0d58>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - obj 0x15348fb, ctx 0x20007
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.X3]: obj 0x15348fb, ctx 0x20007, surf 0x620108bb - switch - CONTEXT_CURRENT - stateTracker.on false - <dc7d5f, 1ab0d58>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: createContextARB: mappedVersionsAvailableSet(decon): true
JOGL-GLWorkerThread-: createContextARB: Requested 3.0 (Compat profile, arb, hardware)
JOGL-GLWorkerThread-: createContextARB: Mapped 3.3 (Compat profile, arb, ES2 compat, FBO, hardware)
JOGL-GLWorkerThread- - WindowWGLContext.createContextARBImpl: 3.3 (Compat profile, arb, ES2 compat, FBO, hardware) - @creation, handle 0x5701012b, share 0x20000, direct true, wglCreateContextAttribsARB: 0x69072710
JOGL-GLWorkerThread-: createContextARBImpl: NO 3.3 (Compat profile, arb, ES2 compat, FBO, hardware) - @creation
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.0]: obj 0x15348fb, ctx 0x20007, surf 0x620108bb, inDestruction: false, <dc7d5f, 1ab0d58>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - NULL
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.X]: obj 0x15348fb, ctx 0x20007, surf 0x0 - switch - <dc7d5f, 1ab0d58>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: Initializing WGL extension address table: WGL-.windows_decon_0
JOGL-GLWorkerThread-: GLContext WGL ProcAddressTable reusing key(WGL-.windows_decon_0) -> 0x9e3fa6
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail: Given WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]] - 0.0 (Compat profile, hardware) - 1.1.0
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail: Pre version verification - expected 0.0 (Compat profile, hardware), strictMatch false, glVersionsMapping false
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail: Version verification (Int): 1.1.0, 0.0.0
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail: Version verification (String): 1.1.0, 1.1.0
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail: Post version verification req 0.0 (Compat profile, hardware) -> has 1.1 (Compat profile, hardware), strictMatch false, versionValidated true, versionGL3IntFailed true
Quirk: NoDoubleBufferedBitmap: cause: OS WINDOWS
Quirks local: [NoDoubleBufferedBitmap]
Quirks sticky on WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]]: []
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail.0 validated FQN: .windows_decon_0-0x1010002 - 1.1 (Compat profile, hardware) - 1.1.0
JOGL-GLWorkerThread-: GLContext GL ProcAddressTable reusing key(.windows_decon_0-0x1010002) -> 0x164624e
JOGL-GLWorkerThread-: GLContext GL ExtensionAvailabilityCache reusing key(.windows_decon_0-0x1010002) -> 0x171f9da - entries: 6
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail.X: OK .windows_decon_0-0x1010002 - 1.1 (Compat profile, hardware) - glErr 0x500
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.1]: Context lock.unlock() due to error, res CONTEXT_NOT_CURRENT, <1f56ae9, 13dec1a>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: javax.media.opengl.GLException: JOGL-GLWorkerThread-: WindowsWGLContex.createContextImpl ctx !ARB, profile > GL2 requested (OpenGL >= 3.0.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 1.1 (Compat profile, hardware) - 1.1.0
        at jogamp.opengl.ThreadingImpl.invokeOnWorkerThread(ThreadingImpl.java:225)
        at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:108)
        at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:206)
        at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172)
        at javax.media.opengl.Threading.invoke(Threading.java:191)
        at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:528)
        at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:582)
        at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
        at sun.awt.RepaintArea.paint(RepaintArea.java:240)
        at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:347)
        at java.awt.Component.dispatchEventImpl(Component.java:4937)
        at java.awt.Component.dispatchEvent(Component.java:4687)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
        at java.awt.EventQueue.access$200(EventQueue.java:103)
        at java.awt.EventQueue$3.run(EventQueue.java:694)
        at java.awt.EventQueue$3.run(EventQueue.java:692)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.awt.EventQueue$4.run(EventQueue.java:708)
        at java.awt.EventQueue$4.run(EventQueue.java:706)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: javax.media.opengl.GLException: JOGL-GLWorkerThread-: WindowsWGLContex.createContextImpl ctx !ARB, profile > GL2 requested (OpenGL >= 3.0.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 1.1 (Compat profile, hardware) - 1.1.0
        at jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:377)
        at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:660)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:562)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:519)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1089)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:978)
        at javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1282)
        at jogamp.opengl.GLWorkerThread$WorkerRunnable.run(GLWorkerThread.java:258)
        at java.lang.Thread.run(Thread.java:744)
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x1f2e931, ctx 0x1000d, surf 0x0 - <159faab, 57f86c>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - obj 0x1f2e931, ctx 0x1000d
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.X3]: obj 0x1f2e931, ctx 0x1000d, surf 0xc6010c9a - switch - CONTEXT_CURRENT - stateTracker.on true - <159faab, 57f86c>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.0]: obj 0x1f2e931, ctx 0x1000d, surf 0xc6010c9a, inDestruction: false, <159faab, 57f86c>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - NULL
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.X]: obj 0x1f2e931, ctx 0x1000d, surf 0x0 - switch - <159faab, 57f86c>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x15b9e1c, ctx 0x1000b, surf 0x0 - <11496a4, ae0228>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - obj 0x15b9e1c, ctx 0x1000b
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.X3]: obj 0x15b9e1c, ctx 0x1000b, surf 0x5701012b - switch - CONTEXT_CURRENT - stateTracker.on true - <11496a4, ae0228>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.0]: obj 0x15b9e1c, ctx 0x1000b, surf 0x5701012b, inDestruction: false, <11496a4, ae0228>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
JOGL-GLWorkerThread-: GLContext.ContextSwitch: - setCurrent() - NULL
JOGL-GLWorkerThread-: GLContext.ContextSwitch[release.X]: obj 0x15b9e1c, ctx 0x1000b, surf 0x0 - switch - <11496a4, ae0228>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x2c9cd5, ctx 0x0, surf 0x0 - <613128, e248ac>[count 0, qsz 0, owner <NULL>]
JOGL-GLWorkerThread-: createImpl: START GLCaps[wgl vid 0x2 arb: rgba 8/8/8/8, trans-rgba 0x0/0/0/0, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL3bc/GL3bc.hw], on-scr[.]], share WindowsWGLContext [Version 3.3 (Compat profile, arb, ES2 compat, FBO, hardware) - 3.3.11631 Compatibility Profile Context [GL 3.3.0, vendor 0.0.0 (n/a)], options 0x1403, this 0x132bb00, handle 0x20000, isShared true, jogamp.opengl.gl4.GL4bcImpl@18c4765,
         quirks: [NoDoubleBufferedBitmap, NeedCurrCtx4ARBPixFmtQueries, NeedCurrCtx4ARBCreateContext],
        Drawable: WindowsPbufferWGLDrawable[Realized true,
        Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@c17f01,
        Handle    0xc010b52,
        Surface   WrappedSurface[ displayHandle 0x0
, surfaceHandle 0xc010b52
, size 1x1
, UOB[ OWNS_DEVICE ]
, WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3bc/GL3bc.hw], offscr[pbuffer]],
        chosen    GLCaps[wgl vid 0x2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL3bc/GL3bc.hw], offscr[pbuffer]]]
, surfaceLock <851004, 1de8c6b>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
, UpstreamSurfaceHookMutableSize[ 1x1]
, upstreamSurface false ]]]
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.0]: obj 0x15348fb, ctx 0x20007, surf 0x0 - <dc7d5f, 1ab0d58>[count 0, qsz 0, owner <NULL>]
JOGL-GLW
Reply | Threaded
Open this post in threaded view
|

Re: Multiple GLCanvas/FPSAnimator Hang

sfriend
More Information, I forgot to add the GLCanvas/FPSAnimators are sharing an GLOffscreenAutoDrawable

Thanks for any help on this issue.
Reply | Threaded
Open this post in threaded view
|

Re: Multiple GLCanvas/FPSAnimator Hang

Sven Gothel
Administrator
On 11/11/2013 04:37 PM, sfriend [via jogamp] wrote:
> More Information, I forgot to add the GLCanvas/FPSAnimators are sharing an
> GLOffscreenAutoDrawable
>
> Thanks for any help on this issue.

Pls provide a _small_ test, best if you can
copy on of our unit tests and make it match your case.

Thank you.

~Sven



signature.asc (911 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Multiple GLCanvas/FPSAnimator Hang

Sven Gothel
Administrator
In reply to this post by sfriend
On 11/11/2013 04:45 PM, Sven Gothel wrote:
> On 11/11/2013 04:37 PM, sfriend [via jogamp] wrote:
>> More Information, I forgot to add the GLCanvas/FPSAnimators are sharing an
>> GLOffscreenAutoDrawable
>>
>> Thanks for any help on this issue.
>
> Pls provide a _small_ test, best if you can
> copy on of our unit tests and make it match your case.
>

Look for test names Test*Shared* within jogl/src/test


> Thank you.
>
> ~Sven
>
>



signature.asc (911 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Multiple GLCanvas/FPSAnimator Hang

sfriend
I can't seem to reproduce this hang outside of my large (GIS type) of application. I have tried to create test code performing the same setup, but it always works. So is it timing ? , is it memory ? I've tried lots of changed to my code, but it still continues to fail.

This line
createContextARBImpl: NO 3.3 (Compat profile, arb, ES2 compat, FBO, hardware) - @creation
seems to be printed by the failure of ctx = _wglExt.wglCreateContextAttribsARB(drawable.getHandle(), share, attribsNIO);

This seems to be the first failure in JOGL and then it goes downhill from there and I can never create a GLCanvas again, its like the GLProfile has switched to 1.0 or 1.1 automatically.

Any ideas or suggestions on how to track this down would be greatly appreciated.

Reply | Threaded
Open this post in threaded view
|

Re: Multiple GLCanvas/FPSAnimator Hang

gouessej
Administrator
Why not using a profiler (JVisualVM + some plugins) to look at the Java heap and the native heap? Anyway, I advise you to improve your test case until it allows to reproduce your bug.

Edit.: You can't create an infinite number of OpenGL contexts.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Multiple GLCanvas/FPSAnimator Hang

sfriend
The problem usually happens with 2 or 3 windows. JFrames/JSplitpane/Jpanel/GLCanvas and an FPSAnimator for each. I have looked at heap and things appear to be operating as expected. I also monitored video memory usage and its well under the 512 mb my card has.
I have also tried another Graphics Card, with a  AMD Radeon E6760 chipset and 1 GB of ram. Same driver supports both cards.

At this stage I'm going to try to build JOGL and get the extended error information for wglCreateContextAttribsARB when it fails. I may try dumping the stack for my threads also to try to figure out what could be causing it.

This is a strange problem and sometimes it takes an hour of testing to get it to happen , so its not a quick process. It always happens the first time the context is created for a newly opened window (once the animator is started). Once it happens I can no longer open any new windows they all fail with the same error as shown above in the log. Any existing windows/glcanvas's I have open , the Animator continues to run and all graphics are fine.

Thanks for the suggestions. If you think of anything else, please let me know.


Reply | Threaded
Open this post in threaded view
|

Re: Multiple GLCanvas/FPSAnimator Hang

sfriend
Below is the attempt to mimic the hang, it opens multiple JFrame/JSplitPane/JPanel/GLCanvas with FPSAnimator. This is exactly what my large app that's failing is doing, the timing is different of course, the window are open by a user. Do you see any problems with the JOGL concept we are using?

Thanks Again





package examples;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;

import javax.media.opengl.DefaultGLCapabilitiesChooser;
import javax.media.opengl.GL;
import javax.media.opengl.GL2;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLDrawableFactory;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLProfile;
import javax.media.opengl.awt.GLCanvas;
import javax.swing.JFrame;

import com.jogamp.opengl.util.FPSAnimator;
import examples.OrionAnimator;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.media.opengl.GLOffscreenAutoDrawable;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.SwingUtilities;
import jogamp.opengl.GLWorkerThread;

public class JoglTest
{
  private static GLOffscreenAutoDrawable glad = null;

  private static int size = 200;

  public static void main( String[] args )
  {
    GLProfile.initSingleton();
    GLWorkerThread.start();
    /*
     * Create and display the form
     */
    java.awt.EventQueue.invokeLater( new Runnable()
    {
      public void run()
      {
        JoglTest test = new JoglTest();
        test.Run();
      }
    } );

  }

  public JoglTest()
  {
  }

  public void Run()
  {
    Random rand = new Random();
    OrionAnimator.getInstance().init();

    OrionAnimator.getInstance().start();

    PrintStream out;
    try
    {
      out = new PrintStream( new FileOutputStream( "output.txt" ) );
      System.setOut( out );
      System.setErr( out );
    }
    catch( FileNotFoundException ex )
    {
      Logger.getLogger( JoglTest.class.getName() ).log( Level.SEVERE, null, ex );
    }

    for( int i = 0; i < 10; i++ )
    {
      final int x = ( i % 5 ) * size;
      final int y = ( i / 5 ) * size;

      // set up frame and tabs
      JFrame frame = new JFrame();


      JPanel mainPanel = new JPanel();

      mainPanel.setLayout( new BorderLayout() );

      JPanel rightpanel = new JPanel();
      rightpanel.setBorder( BorderFactory.createLineBorder( Color.black ) );

      rightpanel.setSize( size, size );
      JSplitPane splitPaneMap = new javax.swing.JSplitPane();

      rightpanel.setSize( size, size );
      splitPaneMap.setRightComponent( rightpanel );

      mainPanel.add( splitPaneMap, java.awt.BorderLayout.CENTER );
      mainPanel.setSize( size, size );
      splitPaneMap.setDividerLocation( 50 );
      frame.setLayout( new BorderLayout() );
      frame.setContentPane( mainPanel );
      frame.setLocation( x, y );

      GLProfile profile = GLProfile.getDefault();
      GLCapabilities glCaps = new GLCapabilities( profile );
      glCaps.setPBuffer( true );
      if( glad == null )
      {
        glad = GLDrawableFactory.getFactory( profile ).createOffscreenAutoDrawable( GLDrawableFactory.getFactory( profile ).getDefaultDevice(),
                                                                                    glCaps,
                                                                                    new DefaultGLCapabilitiesChooser(),
                                                                                    1,
                                                                                    1 );
        glad.display();
      }

      glCaps = new GLCapabilities( profile );
      GLCanvas canvas = new GLCanvas( glCaps, new DefaultGLCapabilitiesChooser(), null );
      canvas.setSharedContext( glad.getContext() );
      canvas.addGLEventListener( new TestRenderer( new float[]
              {
                1f, 0f, 0f
              } ) );
      FPSAnimator animator = new FPSAnimator( canvas, 40 );


      canvas.setSize( size, size );
      rightpanel.add( canvas );

      frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      frame.setSize( size, size );


      if( frame.getExtendedState() == Frame.ICONIFIED )
      {
        frame.setExtendedState( Frame.NORMAL );
      }
      frame.toFront();

      final Frame ff = frame;
      SwingUtilities.invokeLater( new Runnable()
      {
        @Override
        public void run()
        {
          ff.setVisible( true );
        }
      } );

      final FPSAnimator fa = animator;


      frame.addWindowListener( new WindowAdapter()
      {
        @Override
        public void windowOpened( WindowEvent evt )
        {
          fa.start();
        }
      } );
    }
  }

  private static class TestRenderer implements GLEventListener
  {

    private int textureId = -1;

    private float[] color;

    float spin = 0;

    public TestRenderer( float[] color )
    {
      this.color = color;
    }

    @Override
    public void display( GLAutoDrawable drawable )
    {
      GL2 gl = drawable.getGL().getGL2();

      // set custom background color to distinguish tabs
      gl.glClearColor( color[0], color[1], color[2], 1f );
      gl.glClear( GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT );

      gl.glEnable( GL.GL_TEXTURE_2D );
      gl.glBindTexture( GL.GL_TEXTURE_2D, textureId );

      // make this white so the texture appears correctly
      // if the texture wasn't shared properly, the quad will be all white
      gl.glColor4f( 1f, 1f, 1f, 1f );
      gl.glPushMatrix();
      gl.glRotatef( spin, 0.0f, 0.0f, 1.0f );


      gl.glBegin( GL2.GL_QUADS );
      gl.glVertex3f( -1f, 1f, 0f );
      gl.glTexCoord2f( 0f, 1f );
      gl.glVertex3f( -1f, -1f, 0f );
      gl.glTexCoord2f( 0f, 0f );
      gl.glVertex3f( 1f, -1f, 0f );
      gl.glTexCoord2f( 1f, 0f );
      gl.glVertex3f( 1f, 1f, 0f );
      gl.glTexCoord2f( 1f, 1f );
      gl.glEnd();

      gl.glDisable( GL.GL_TEXTURE_2D );
      gl.glBindTexture( GL.GL_TEXTURE_2D, 0 );
      spin += 1;
      while( spin > 360 )
      {
        spin -= 360;
      }
      gl.glPopMatrix();
    }

    @Override
    public void dispose( GLAutoDrawable drawable )
    {
      // do nothing
    }

    @Override
    public void init( GLAutoDrawable drawable )
    {
      GL2 gl = drawable.getGL().getGL2();
      System.out.println( "Initializing GLCanvas@" + Integer.toHexString( drawable.hashCode() ) );
      if( textureId < 0 )
      {
        int[] id = new int[ 1 ];
        gl.glGenTextures( 1, id, 0 );
        textureId = id[0];

        System.out.println( "Creating texture on GLCanvas@" + Integer.toHexString( drawable.hashCode() ) + " with ID=" + textureId );

        // fill up pixel image with a gradient pattern
        gl.glBindTexture( GL.GL_TEXTURE_2D, textureId );
        int width = 16;
        int height = 16;

        FloatBuffer data = ByteBuffer.allocateDirect( 4 * 3 * width * height ).order( ByteOrder.nativeOrder() ).asFloatBuffer();
        for( int y = 0; y < height; y++ )
        {
          for( int x = 0; x < width; x++ )
          {
            data.put( 3 * ( y * width + x ) + 0, x / (float)width );
            data.put( 3 * ( y * width + x ) + 1, y / (float)height );
            data.put( 3 * ( y * width + x ) + 2, 0f );
          }
        }

        gl.glTexImage2D( GL.GL_TEXTURE_2D, 0, GL.GL_RGB, width, height, 0, GL.GL_RGB, GL.GL_FLOAT, data.rewind() );
        gl.glTexParameteri( GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_NEAREST );
        gl.glTexParameteri( GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_NEAREST );

        gl.glBindTexture( GL.GL_TEXTURE_2D, 0 );
      }
    }

    @Override
    public void reshape( GLAutoDrawable drawable, int x, int y, int width, int height )
    {
      GL2 gl = drawable.getGL().getGL2();
      gl.glMatrixMode( GL2.GL_PROJECTION );
      gl.glLoadIdentity();
      gl.glOrtho( -2, 2, -2, 2, -1, 1 );

      gl.glMatrixMode( GL2.GL_MODELVIEW );
      gl.glLoadIdentity();
    }
  }
}
Reply | Threaded
Open this post in threaded view
|

Re: Multiple GLCanvas/FPSAnimator Hang

Sven Gothel
Administrator
On 11/20/2013 10:45 PM, sfriend [via jogamp] wrote:
> Below is the attempt to mimic the hang, it opens multiple
> JFrame/JSplitPane/JPanel/GLCanvas with FPSAnimator. This is exactly what my
> large app that's failing is doing, the timing is different of course, the
> window are open by a user. Do you see any problems with the JOGL concept we
> are using?

Looks very similar to our many shared context tests:
  com.jogamp.opengl.test.junit.jogl.acore.TestSharedContext*

I tried it here on GNU/Linux/X11 and Java7 and it works,
after uncommenting the 'Orion' stuff, which I don't have.

Pls try the above mentioned TestSharedContext* unit tests
on your WinXP AMD machine, highly likely that it's a case
of a buggy GL driver! Maybe update the driver to latest.

The unit tests results shall elucidate us what is working
on your system .. and what not.

You can run single unit tests as follows:

cd jogl/make
edit 'scripts/tests-win.bat' and enable the desired unit test,
i.e. change via commenting current and uncommenting desired test.
You may also want to enable some debug flags.

Edit 'scripts/tests-x64.bat' or 'scripts/tests-x32.bat'
and match the directories to your system.
Execute them ..

~Sven

>
> Thanks Again


signature.asc (911 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Multiple GLCanvas/FPSAnimator Hang

chal1oye
Banned User
This post was updated on .
In reply to this post by sfriend
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Multiple GLCanvas/FPSAnimator Hang

sfriend
I'm still experiencing this problem. I have upgraded to Windows 7 and the latest drivers and tried many different approaches. This problem only seems to happen when opening mulitple windows. Looking at this link:
http://forum.worldwindcentral.com/showthread.php?43356-Multi-window-GLContext-initialization-problem

It appears WorldWind is having the same or similar issues when running in multi window mode. After reading their post, I added more debug and it appears my problem is the same, I get the setPixelFormat (post): hdc 0xffffffffa3010a85, 32 -> 2, set: false error. So is the create context choosing the wrong graphics device ? See below for my logs with jogl.debug, Any help on this would be appreciated , not sure what to do next.

[GL4bc/GL4bc.hw], on-scr[.]]
Window system's recommended choice: 0
Choosing window system's recommended choice of 0
GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]
chooseCapabilities: Chosen idx 0
chosen pfdID (ARB): native recommended 1 chosen GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]], skipCapsChooser false
*** setCapsPFD: GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]
WindowsAWTWGLGraphicsConfigurationFactory: Found new AWT PFD ID 2 -> WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]]
AWT-EventQueue-0: GLCanvas: TK disableBackgroundErase error: java.lang.reflect.InvocationTargetException
AWT-EventQueue-0: GLCanvas: TK disableBackgroundErase error: null
GLDrawableFactoryImpl.createGLDrawable -> OnscreenDrawable: JAWTWindow[0x532d0784][JVM version: 1.7.0_60 (1.7.0 update 60)
JAWT version: 0x10004, CA_LAYER: false, isLayeredSurface false, bounds [ 0 / 0  0 x 0 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], shallUseOffscreenLayer false, isOffscreenLayerSurface false, attachedSurfaceLayer 0x0, windowHandle 0x240300, surfaceHandle 0x2b010a0e, bounds [ 0 / 0  0 x 0 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], pos 0/0, size 0x0, visible true, lockedExt false,
        config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        sun.awt.Win32GraphicsConfig@5b2ffe19[dev=Win32GraphicsDevice[screen=0],pixfmt=2],
        encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]]],
        awtComponent AWT-GLCanvas[Realized false,
        null-drawable,
        Factory   null,
        handle    0x0,
        Drawable size -1x-1,
        AWT pos 0/0, size 0x0,
        visible true, displayable true, showing false,
        AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        sun.awt.Win32GraphicsConfig@5b2ffe19[dev=Win32GraphicsDevice[screen=0],pixfmt=2],
        encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]]]],
        surfaceLock <314895c5, 1460d1ca>[count 1, qsz 0, owner <AWT-EventQueue-0>]]
GLDrawableFactoryImpl.createGLDrawable: WindowsOnscreenWGLDrawable[Realized false,
        Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@339989ef,
        Handle    0x2b010a0e,
        Surface   JAWTWindow[0x532d0784][JVM version: 1.7.0_60 (1.7.0 update 60)
JAWT version: 0x10004, CA_LAYER: false, isLayeredSurface false, bounds [ 0 / 0  0 x 0 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], shallUseOffscreenLayer false, isOffscreenLayerSurface false, attachedSurfaceLayer 0x0, windowHandle 0x240300, surfaceHandle 0x2b010a0e, bounds [ 0 / 0  0 x 0 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], pos 0/0, size 0x0, visible true, lockedExt false,
        config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        sun.awt.Win32GraphicsConfig@5b2ffe19[dev=Win32GraphicsDevice[screen=0],pixfmt=2],
        encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]]],
        awtComponent AWT-GLCanvas[Realized false,
        null-drawable,
        Factory   null,
        handle    0x0,
        Drawable size -1x-1,
        AWT pos 0/0, size 0x0,
        visible true, displayable true, showing false,
        AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        sun.awt.Win32GraphicsConfig@5b2ffe19[dev=Win32GraphicsDevice[screen=0],pixfmt=2],
        encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]]]],
        surfaceLock <314895c5, 1460d1ca>[count 1, qsz 0, owner <AWT-EventQueue-0>]]]
AWT-EventQueue-0: GLContext.resetStates(isInit true)
GLContextShareSet: registereSharing: 1: 0x0, 2: 0x20000
AWT-EventQueue-0: Context created: has shared true
AWT-EventQueue-0: Info: addNotify - end: peer: sun.awt.windows.WCanvasPeer[AWT-GLCanvas[Realized false,
        jogamp.opengl.windows.wgl.WindowsOnscreenWGLDrawable,
        Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@339989ef,
        handle    0x0,
        Drawable size 0x0,
        AWT pos 0/0, size 0x0,
        visible true, displayable true, showing false,
        AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        sun.awt.Win32GraphicsConfig@5b2ffe19[dev=Win32GraphicsDevice[screen=0],pixfmt=2],
        encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]]]]]
FPSAnimator.stop() START: Task[thread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer1,6,main], stopped false, paused false shouldRun true, shouldStop false -- started true, animating true, paused false, drawable 1, drawablesEmpty false], Thread[AWT-EventQueue-0,6,main]: com.jogamp.opengl.util.FPSAnimator[started true, animating true, paused false, drawable 1, totals[dt 0, frames 1713, fps 0.0], modeBits 1, init'ed true, animThread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer1,6,main], exclCtxThread false(null)]
finishLifecycleAction(com.jogamp.opengl.util.FPSAnimator$3): OK false- pollPeriod 32, blocking false, waited 0/1000 - AWT-EventQueue-0
 - com.jogamp.opengl.util.FPSAnimator[started true, animating true, paused false, drawable 1, totals[dt 0, frames 1713, fps 0.0], modeBits 1, init'ed true, animThread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer1,6,main], exclCtxThread false(null)]
java.lang.Exception: Stack trace
        at java.lang.Thread.dumpStack(Unknown Source)
        at com.jogamp.opengl.util.AnimatorBase.finishLifecycleAction(AnimatorBase.java:552)
        at com.jogamp.opengl.util.FPSAnimator.stop(FPSAnimator.java:284)
        at Atlas.map.AnimatorManager.StopAnimators(AnimatorManager.java:113)
        at ARL_GUI.Map_GUI.MapWindowPanel.initializeMapContainer(MapWindowPanel.java:610)
        at ARL_GUI.Map_GUI.OrionMapManager.createNewMapFrame(OrionMapManager.java:132)
        at ARL_GUI.MDI_GUI.ToolsMenuActionListener$1.run(ToolsMenuActionListener.java:168)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
FPSAnimator.stop() END: Task[thread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer1,6,main], stopped false, paused false shouldRun false, shouldStop true -- started true, animating true, paused false, drawable 1, drawablesEmpty false], Thread[AWT-EventQueue-0,6,main]: com.jogamp.opengl.util.FPSAnimator[started true, animating true, paused false, drawable 1, totals[dt 0, frames 1713, fps 0.0], modeBits 1, init'ed true, animThread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer1,6,main], exclCtxThread false(null)]
FPSAnimator.stop() START: Task[thread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer2,6,main], stopped false, paused false shouldRun true, shouldStop false -- started true, animating true, paused false, drawable 1, drawablesEmpty false], Thread[AWT-EventQueue-0,6,main]: com.jogamp.opengl.util.FPSAnimator[started true, animating true, paused false, drawable 1, totals[dt 0, frames 1651, fps 0.0], modeBits 1, init'ed true, animThread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer2,6,main], exclCtxThread false(null)]
finishLifecycleAction(com.jogamp.opengl.util.FPSAnimator$3): OK false- pollPeriod 32, blocking false, waited 0/1000 - AWT-EventQueue-0
 - com.jogamp.opengl.util.FPSAnimator[started true, animating true, paused false, drawable 1, totals[dt 0, frames 1651, fps 0.0], modeBits 1, init'ed true, animThread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer2,6,main], exclCtxThread false(null)]
java.lang.Exception: Stack trace
        at java.lang.Thread.dumpStack(Unknown Source)
        at com.jogamp.opengl.util.AnimatorBase.finishLifecycleAction(AnimatorBase.java:552)
        at com.jogamp.opengl.util.FPSAnimator.stop(FPSAnimator.java:284)
        at Atlas.map.AnimatorManager.StopAnimators(AnimatorManager.java:113)
        at ARL_GUI.Map_GUI.MapWindowPanel.initializeMapContainer(MapWindowPanel.java:610)
        at ARL_GUI.Map_GUI.OrionMapManager.createNewMapFrame(OrionMapManager.java:132)
        at ARL_GUI.MDI_GUI.ToolsMenuActionListener$1.run(ToolsMenuActionListener.java:168)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
FPSAnimator.stop() END: Task[thread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer2,6,main], stopped false, paused false shouldRun false, shouldStop true -- started true, animating true, paused false, drawable 1, drawablesEmpty false], Thread[AWT-EventQueue-0,6,main]: com.jogamp.opengl.util.FPSAnimator[started true, animating true, paused false, drawable 1, totals[dt 0, frames 1651, fps 0.0], modeBits 1, init'ed true, animThread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer2,6,main], exclCtxThread false(null)]
Animator add: 0x3ca47d86 - com.jogamp.opengl.util.FPSAnimator[started false, animating false, paused false, drawable 0, totals[dt 0, frames 0, fps 0.0], modeBits 1, init'ed false, animThread null, exclCtxThread false(null)] - AWT-EventQueue-0
Animator.initImpl: baseName FPSAWTAnimator, implClazz com.jogamp.opengl.util.AWTAnimatorImpl - com.jogamp.opengl.util.FPSAnimator[started false, animating false, paused false, drawable 0, totals[dt 0, frames 0, fps 0.0], modeBits 1, init'ed true, animThread null, exclCtxThread false(null)] - AWT-EventQueue-0
finishLifecycleAction(com.jogamp.opengl.util.AnimatorBase$1): OK true- pollPeriod 0, blocking false, waited 0/1000 - AWT-EventQueue-0
 - com.jogamp.opengl.util.FPSAnimator[started false, animating false, paused false, drawable 1, totals[dt 0, frames 0, fps 0.0], modeBits 1, init'ed true, animThread null, exclCtxThread false(null)]
Animator add: Wait for Animating/ECT OK: true, com.jogamp.opengl.util.FPSAnimator[started false, animating false, paused false, drawable 1, totals[dt 0, frames 0, fps 0.0], modeBits 1, init'ed true, animThread null, exclCtxThread false(null)], dect null
GLCanvas.sizeChanged: (AWT-EventQueue-0): 727x495 - surfaceHandle 0x0
AWT-EventQueue-0: setRealized: drawable WindowsOnscreenWGLDrawable, surface WindowsJAWTWindow, isProxySurface false: false -> true
java.lang.Exception: Stack trace
        at java.lang.Thread.dumpStack(Unknown Source)
        at jogamp.opengl.GLDrawableImpl.setRealized(GLDrawableImpl.java:178)
        at javax.media.opengl.awt.GLCanvas.setRealizedImpl(GLCanvas.java:493)
        at javax.media.opengl.awt.GLCanvas.access$100(GLCanvas.java:159)
        at javax.media.opengl.awt.GLCanvas$3.run(GLCanvas.java:503)
        at com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:88)
        at javax.media.opengl.awt.GLCanvas.setRealized(GLCanvas.java:513)
        at javax.media.opengl.awt.GLCanvas.validateGLDrawable(GLCanvas.java:702)
        at javax.media.opengl.awt.GLCanvas.reshape(GLCanvas.java:769)
        at java.awt.Component.setBounds(Unknown Source)
        at java.awt.BorderLayout.layoutContainer(Unknown Source)
        at java.awt.Container.layout(Unknown Source)
        at java.awt.Container.doLayout(Unknown Source)
        at java.awt.Container.validateTree(Unknown Source)
        at java.awt.Container.validateTree(Unknown Source)
        at java.awt.Container.validateTree(Unknown Source)
        at java.awt.Container.validateTree(Unknown Source)
        at java.awt.Container.validateTree(Unknown Source)
        at java.awt.Container.validateTree(Unknown Source)
        at java.awt.Container.validateTree(Unknown Source)
        at java.awt.Container.validateTree(Unknown Source)
        at java.awt.Container.validate(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
setPixelFormat (post): hdc 0xffffffffa3010a85, 32 -> 2, set: false
AWT-EventQueue-0: WindowsWGLDrawable.setRealized(true): WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]]
AWT-EventQueue-0: Realized Drawable: isRealized true, WindowsOnscreenWGLDrawable[Realized true,
        Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@339989ef,
        Handle    0x0,
        Surface   JAWTWindow[0x532d0784][JVM version: 1.7.0_60 (1.7.0 update 60)
JAWT version: 0x10004, CA_LAYER: false, isLayeredSurface false, bounds [ 0 / 0  727 x 495 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], shallUseOffscreenLayer false, isOffscreenLayerSurface false, attachedSurfaceLayer 0x0, windowHandle 0x240300, surfaceHandle 0x0, bounds [ 0 / 0  727 x 495 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], pos 0/0, size 727x495, visible true, lockedExt false,
        config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        sun.awt.Win32GraphicsConfig@5b2ffe19[dev=Win32GraphicsDevice[screen=0],pixfmt=2],
        encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]]],
        awtComponent AWT-GLCanvas[Realized true,
        jogamp.opengl.windows.wgl.WindowsOnscreenWGLDrawable,
        Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@339989ef,
        handle    0x0,
        Drawable size 727x495,
        AWT pos 0/0, size 727x495,
        visible true, displayable true, showing false,
        AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        sun.awt.Win32GraphicsConfig@5b2ffe19[dev=Win32GraphicsDevice[screen=0],pixfmt=2],
        encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0], pfdID 2, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]],
        chosen    GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]]]],
        surfaceLock <314895c5, 1460d1ca>[count 0, qsz 0, owner <NULL>]]]
FPSAnimator.start() START: Task[thread null, stopped false, paused false shouldRun false, shouldStop false -- started false, animating false, paused false, drawable 1, drawablesEmpty false], Thread[AWT-EventQueue-0,6,main]: com.jogamp.opengl.util.FPSAnimator[started false, animating false, paused false, drawable 1, totals[dt 0, frames 0, fps 0.0], modeBits 1, init'ed true, animThread null, exclCtxThread false(null)]
finishLifecycleAction(com.jogamp.opengl.util.FPSAnimator$1): OK false- pollPeriod 32, blocking false, waited 0/1000 - AWT-EventQueue-0
 - com.jogamp.opengl.util.FPSAnimator[started false, animating false, paused false, drawable 1, totals[dt 0, frames 0, fps 0.0], modeBits 1, init'ed true, animThread null, exclCtxThread false(null)]
java.lang.Exception: Stack trace
        at java.lang.Thread.dumpStack(Unknown Source)
        at com.jogamp.opengl.util.AnimatorBase.finishLifecycleAction(AnimatorBase.java:552)
        at com.jogamp.opengl.util.FPSAnimator.start(FPSAnimator.java:244)
        at Atlas.map.AnimatorManager.StartAnimators(AnimatorManager.java:134)
        at ARL_GUI.Map_GUI.MapWindowPanel$2.windowOpened(MapWindowPanel.java:372)
        at java.awt.AWTEventMulticaster.windowOpened(Unknown Source)
        at java.awt.AWTEventMulticaster.windowOpened(Unknown Source)
        at java.awt.Window.processWindowEvent(Unknown Source)
        at javax.swing.JFrame.processWindowEvent(Unknown Source)
        at java.awt.Window.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
FPSAnimator.start() END: Task[thread null, stopped false, paused false shouldRun true, shouldStop false -- started false, animating false, paused false, drawable 1, drawablesEmpty false], Thread[AWT-EventQueue-0,6,main]: com.jogamp.opengl.util.FPSAnimator[started false, animating false, paused false, drawable 1, totals[dt 0, frames 0, fps 0.0], modeBits 1, init'ed true, animThread null, exclCtxThread false(null)]
FPSAnimator start/resume:Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer3,6,main]: Task[thread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer3,6,main], stopped false, paused false shouldRun true, shouldStop false -- started true, animating false, paused false, drawable 1, drawablesEmpty false]
AnimatorBase.setExclusiveContextImpl exlusive false: Enable false for com.jogamp.opengl.util.FPSAnimator[started true, animating true, paused false, drawable 1, totals[dt 0, frames 0, fps 0.0], modeBits 1, init'ed true, animThread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer3,6,main], exclCtxThread false(null)] - Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer3,6,main]
GLDrawableHelper.setExclusiveContextThread(): START switch nop, thread null -> null -- currentThread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer3,6,main]
GLDrawableHelper.setExclusiveContextThread(): END switch nop, thread null -- currentThread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer3,6,main]
FPSAnimator P1:Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer3,6,main]: Task[thread Thread[AWT-EventQueue-0-FPSAWTAnimator-Timer3,6,main], stopped false, paused false shouldRun true, shouldStop false -- started true, animating true, paused false, drawable 1, drawablesEmpty false]
JOGL-GLWorkerThread-: createImpl: START GLCaps[wgl vid 2 arb: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]], share 0x10002
JOGL-GLWorkerThread-: createContextARB: mappedVersionsAvailableSet(decon): true
JOGL-GLWorkerThread-: createContextARB: Requested 4.0 (Core profile, hardware)
JOGL-GLWorkerThread-: createContextARB: Mapped 4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)
JOGL-GLWorkerThread-: Initializing WGL extension address table: WGL-.windows_decon_0
JOGL-GLWorkerThread-: GLContext WGL ProcAddressTable reusing key(WGL-.windows_decon_0) -> 0x666f258a
JOGL-GLWorkerThread- - WindowWGLContext.createContextARBImpl: 4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware) - @creation, handle 0xffffffffa3010a85, share 0x10002, direct true, wglCreateContextAttribsARB: 0x585bb0f0
JOGL-GLWorkerThread-: createContextARBImpl: NO 4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware) - @creation
Info: setGL (OpenGL null): JOGL-GLWorkerThread-, <null> -> GL4bcImpl, jogamp.opengl.gl4.GL4bcImpl@208a2053
java.lang.Exception: Stack trace
        at java.lang.Thread.dumpStack(Unknown Source)
        at jogamp.opengl.GLContextImpl.setGL(GLContextImpl.java:286)
        at jogamp.opengl.GLContextImpl.setGLFunctionAvailability(GLContextImpl.java:1375)
        at jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:317)
        at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:662)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:561)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:518)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1105)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:994)
        at javax.media.opengl.awt.GLCanvas$11.run(GLCanvas.java:1300)
        at jogamp.opengl.GLWorkerThread$WorkerRunnable.run(GLWorkerThread.java:258)
        at java.lang.Thread.run(Unknown Source)
JOGL-GLWorkerThread-: Initializing WGL extension address table: WGL-.windows_decon_0
JOGL-GLWorkerThread-: GLContext WGL ProcAddressTable reusing key(WGL-.windows_decon_0) -> 0x666f258a
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail: Given WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]] - 0.0 (Compat profile, hardware) - 1.1.0, Number(Str) 1.1.0
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail: Pre version verification - expected 0.0 (Compat profile, hardware), strictMatch false, glVersionsMapping false
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail: Version verification (Int): String 1.1.0, Number(Int) 0.0.0
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail: Version verification (String): String 1.1.0, Number(Str) 1.1.0
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail: Post version verification req 0.0 (Compat profile, hardware) -> has 1.1 (Compat profile, hardware), strictMatch false, versionValidated true, versionGL3IntOK false
Quirk: NoDoubleBufferedBitmap: cause: OS WINDOWS
Quirks local.0: [NoDoubleBufferedBitmap]
Quirks local.X: [NoDoubleBufferedBitmap]
Quirks sticky on WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]]: []
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail.0 validated FQN: .windows_decon_0-0x1010002 - 1.1 (Compat profile, hardware) - 1.1.0
JOGL-GLWorkerThread-: GLContext GL ProcAddressTable mapping key(.windows_decon_0-0x1010002) -> 0x5e4550e1
JOGL-GLWorkerThread-:ExtensionAvailabilityCache: Pre-caching init jogamp.opengl.gl4.GL4bcImpl@208a2053, OpenGL 1.1 (Compat profile, hardware) - 1.1.0
JOGL-GLWorkerThread-:ExtensionAvailabilityCache: Pre-caching extension availability OpenGL 1.1 (Compat profile, hardware) - 1.1.0, use glGetString
JOGL-GLWorkerThread-:ExtensionAvailabilityCache: GL_EXTENSIONS: 3, used glGetString
JOGL-GLWorkerThread-:ExtensionAvailabilityCache: GLX_EXTENSIONS: 0
JOGL-GLWorkerThread-:ExtensionAvailabilityCache: GL vendor: Microsoft Corporation
JOGL-GLWorkerThread-:ExtensionAvailabilityCache: ALL EXTENSIONS: 3
JOGL-GLWorkerThread-:ExtensionAvailabilityCache: Added GL_VERSION_1_1 to known extensions
JOGL-GLWorkerThread-:ExtensionAvailabilityCache: Added GL_VERSION_1_0 to known extensions
JOGL-GLWorkerThread-: GLContext GL ExtensionAvailabilityCache mapping key(.windows_decon_0-0x1010002) -> 0x18c11421 - entries: 6
JOGL-GLWorkerThread-: GLContext.setGLFuncAvail.X: OK .windows_decon_0-0x1010002 - 1.1 (Compat profile, hardware) - glErr 0x500
JOGL-GLWorkerThread-: GLContext.ContextSwitch[makeCurrent.1]: Context lock.unlock() due to error, res CONTEXT_NOT_CURRENT, <2c108f39, 732afdc8>[count 1, qsz 0, owner <JOGL-GLWorkerThread->]
Exception in thread "AWT-EventQueue-0-FPSAWTAnimator-Timer3" javax.media.opengl.GLException: javax.media.opengl.GLException: JOGL-GLWorkerThread-: WindowsWGLContex.createContextImpl ctx !ARB, profile > GL2 requested (OpenGL >= 3.0.1). Requested: GLProfile[GL4bc/GL4bc.hw], current: 1.1 (Compat profile, hardware) - 1.1.0
        at jogamp.opengl.ThreadingImpl.invokeOnWorkerThread(ThreadingImpl.java:225)
        at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:108)
        at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:206)
        at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172)
        at javax.media.opengl.Threading.invoke(Threading.java:191)
        at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:541)
        at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:75)
        at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:416)
        at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:172)
        at java.util.TimerThread.mainLoop(Unknown Source)
        at java.util.TimerThread.run(Unknown Source)
Caused by: javax.media.opengl.GLException: JOGL-GLWorkerThread-: WindowsWGLContex.createContextImpl ctx !ARB, profile > GL2 requested (OpenGL >= 3.0.1). Requested: GLProfile[GL4bc/GL4bc.hw], current: 1.1 (Compat profile, hardware) - 1.1.0
        at jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:366)
        at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:662)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:561)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:518)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1105)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:994)
        at javax.media.opengl.awt.GLCanvas$11.run(GLCanvas.java:1300)
        at jogamp.opengl.GLWorkerThread$WorkerRunnable.run(GLWorkerThread.java:258)
        at java.lang.Thread.run(Unknown Source)