I’m relatively new to JOGL, but am hoping to use it for portable OpenGL context management with an application that has multiple GLCanvases in multiple windows.
I’ve apparently run into another form of the ATI driver threading issue with 1.1b05, even though I’ve explicitly enabled the ATI_WORKAROUND property and gotten confirmation in the log. Basically, multiple GLcanvases work fine in a single JPanel, but as soon as you create a second JPanel with one or more GLCanvases, you get this crash in wglCreateContext, resulting from a GLCanvas.reshape and ultimately the awt.Window.show calls.
As the ATI workaround is currently implemented, would you expect to be able to run multiple simultaneous canvases in separate windows? or is this too much of a stretch?
Is there anything else I can do to troubleshoot the issue?
C:\jymolws\jymol\devel\java\bin>java -classpath ".;..\..\..\ext\all\jogl.jar" "-Djava.library.path=..\..\c\JyMolWrapper;..\..\..\ext\win" -DATI_WORKAROUND=true JyMolTestApp
GLCapabilities [DoubleBuffered: true, Stereo: false, HardwareAccelerated: true, DepthBits: 24, StencilBits: 0, Red: 8, Green: 8, Blue: 8, Alpha: 8, Red Accum: 0, Green Accum: 0, Blue Accum: 0, Alpha Accum: 0 ]
Using ATI workaround of dispatching display() on event thread
ATI Technologies Inc.
CMolReshape-Log: I=0x246a3e28 width=632 height=430
GLCapabilities [DoubleBuffered: true, Stereo: false, HardwareAccelerated: true, DepthBits: 24, StencilBits: 0, Red: 8, Green: 8, Blue: 8, Alpha: 8, Red Accum: 0, Green Accum: 0, Blue Accum: 0, Alpha Accum: 0 ]
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x24FFA703
Function=DrvSetContext+0x11313
Library=E:\WINNT\system32\atioglxx.dll
Current Java thread:
at net.java.games.jogl.impl.windows.WGL.wglCreateContext(Native Method)
at net.java.games.jogl.impl.windows.WindowsGLContext.choosePixelFormatAndCreateContext(WindowsGLContext.java:495)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.create(WindowsOnscreenGLContext.java:211)
at net.java.games.jogl.impl.windows.WindowsGLContext.makeCurrent(WindowsGLContext.java:135)
- locked <0x10065770> (a net.java.games.jogl.impl.windows.WindowsOnscreenGLContext)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent(WindowsOnscreenGLContext.java:110)
- locked <0x10065770> (a net.java.games.jogl.impl.windows.WindowsOnscreenGLContext)
at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:254)
- locked <0x10065770> (a net.java.games.jogl.impl.windows.WindowsOnscreenGLContext)
at net.java.games.jogl.GLCanvas.reshape(GLCanvas.java:112)
at java.awt.Component.setBounds(Unknown Source)
at java.awt.BorderLayout.layoutContainer(Unknown Source)
- locked <0x1050d878> (a java.awt.Component$AWTTreeLock)
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.validate(Unknown Source)
- locked <0x1050d878> (a java.awt.Component$AWTTreeLock)
at java.awt.Window.show(Unknown Source)
at JyMolTestApp$JyMolGrid.<init>(JyMolTestApp.java:52)
at JyMolTestApp$JyMOLGridAction.actionPerformed(JyMolTestApp.java:88)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
(...snip...)