Login  Register

"Shader status invalid" with latest jars and GLJpanel

Posted by BFarns on May 15, 2013; 7:13pm
URL: https://forum.jogamp.org/Shader-status-invalid-with-latest-jars-and-GLJpanel-tp4029177.html

Hi, I use jzy3d which uses JOGL, so I'm not that familiar with the code itself. This is also my first time posting and I didn't see any guidelines, but if I'm missing something and posting incorrectly please send me a link.

We were using JOGL v2-RC 11, running on Windows 7 with ATI firepro 2260 graphics cards. We have been experiencing jvm crashes as well as windows crashes recently when using JOGL (through jzy3d). The crashes seem to be related to removing and adding the canvases to panels, since it usually happens after doing this a few times it seems. We tried updating our drivers but were still getting the jvm crashes. For most of the crashes, the stack trace in the dump file looked almost identical to the one in this bug:

https://jogamp.org/bugzilla/show_bug.cgi?id=706

So I tried pulling the jars mentioned in the bug, as they said there was a workaround. I also tried the most recent jars, from May 11, but in both I get exceptions, which I posted below. This is using the GLJPanel (as you can see in the stack trace). Any pointers for what might have changed since RC11 that could cause this, how to fix?

Exception:

///
Shader status invalid: Fragment shader failed to compile with the following errors:
ERROR: 0:12: '' : Declaration must include a precision qualifier or the default precision must have been previously declared.
ERROR:  compilation errors.  No code generated.

javax.media.opengl.GLException: Couldn't link program: ShaderProgram[id=1, linked=false, inUse=false, program: 1,
   ShaderCode[id=1, type=VERTEX_SHADER, valid=true, shader:  2, source]
   ShaderCode[id=2, type=FRAGMENT_SHADER, valid=false, shader:  3, source]]
        at jogamp.opengl.util.glsl.GLSLTextureRaster.init(GLSLTextureRaster.java:80)
        at javax.media.opengl.awt.GLJPanel$OffscreenBackend.initialize(GLJPanel.java:1045)
        at javax.media.opengl.awt.GLJPanel.createAndInitializeBackend(GLJPanel.java:766)
        at javax.media.opengl.awt.GLJPanel.paintComponent(GLJPanel.java:401)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintChildren(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintChildren(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintChildren(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintChildren(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintChildren(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintChildren(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintChildren(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintChildren(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintChildren(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintToOffscreen(Unknown Source)
        at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
        at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
        at javax.swing.RepaintManager.paint(Unknown Source)
        at javax.swing.JComponent._paintImmediately(Unknown Source)
        at javax.swing.JComponent.paintImmediately(Unknown Source)
        at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
        at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$000(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$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)