jogl3-Backend crashes on Mac Pros from 2008[SOLVED]

jReality backends
Post Reply
benjamin.kutschan
Posts: 48
Joined: Mon 16. May 2011, 16:29

jogl3-Backend crashes on Mac Pros from 2008[SOLVED]

Post by benjamin.kutschan » Mon 5. Nov 2012, 19:52

The graphics card on the mac pro from 2008 is a Radeon 2600 XT supporting opengl 3.2 but not 3.3
Therefore the incompatibility is currently not properly detected, because GLProfiles in jogamp do not distinguish between 3.3 and 3.2

User avatar
gunn
Posts: 323
Joined: Thu 14. Dec 2006, 09:56
Location: TU Berlin
Contact:

Re: jogl3-Backend crashes on Mac Pros from 2008

Post by gunn » Mon 12. Nov 2012, 14:37

It also crashes on my new-ish iMac with graphic card AMD Radeon HD 6970M. Full hardware description:

Hardware Overview:

Model Name: iMac
Model Identifier: iMac12,2
Processor Name: Intel Core i7
Processor Speed: 3,4 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 8 MB
Memory: 12 GB
Boot ROM Version: IM121.0047.B1F
SMC Version (system): 1.72f2
Serial Number (system): DGKH21H5DHJW
Hardware UUID: 434B1BFB-CC14-524B-9F69-9E922D546DD8

Stack trace is:

java.lang.RuntimeException: javax.media.opengl.GLException: Not a GL3 implementation
at jogamp.common.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
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:428)
init!!!!!!!!!!!!
at de.jreality.jogl3.Viewer.render(Viewer.java:167)
at de.jreality.ui.viewerapp.ViewerSwitch.render(ViewerSwitch.java:189)
at de.jreality.util.RenderTrigger$RenderTriggerSingleCaster.render(RenderTrigger.java:222)
at de.jreality.util.RenderTrigger.fireRender(RenderTrigger.java:138)
at de.jreality.util.RenderTrigger.finishCollect(RenderTrigger.java:260)
at de.jreality.toolsystem.ToolSystem.processToolEvent(ToolSystem.java:486)
at de.jreality.toolsystem.ToolEventQueue$1.run(ToolEventQueue.java:82)
at java.lang.Thread.run(Thread.java:680)
Caused by: javax.media.opengl.GLException: Not a GL3 implementation
at jogamp.opengl.gl4.GL4bcImpl.getGL3(GL4bcImpl.java:34588)
at de.jreality.jogl3.Viewer.init(Viewer.java:288)
at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:201)
at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:222)
at javax.media.opengl.awt.GLCanvas$6.run(GLCanvas.java:926)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:521)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:462)
at javax.media.opengl.awt.GLCanvas$9.run(GLCanvas.java:964)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: Not a GL3 implementation
at jogamp.opengl.gl4.GL4bcImpl.getGL3(GL4bcImpl.java:34588)
at de.jreality.jogl3.Viewer.display(Viewer.java:219)
at de.jreality.jogl3.Viewer.display(Viewer.java:210)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:243)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:230)
at javax.media.opengl.awt.GLCanvas$7.run(GLCanvas.java:943)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:523)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:462)
at javax.media.opengl.awt.GLCanvas$9.run(GLCanvas.java:964)
at javax.media.opengl.Threading.invoke(Threading.java:193)
at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:428)
at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:480)
at sun.awt.RepaintArea.paintComponent(RepaintArea.java:276)
at sun.awt.RepaintArea.paint(RepaintArea.java:241)
at apple.awt.ComponentModel.handleEvent(ComponentModel.java:263)
at java.awt.Component.dispatchEventImpl(Component.java:4820)
at java.awt.Component.dispatchEvent(Component.java:4572)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:704)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:677)
at java.awt.EventQueue$3.run(EventQueue.java:675)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:674)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
jReality core developer

User avatar
gunn
Posts: 323
Joined: Thu 14. Dec 2006, 09:56
Location: TU Berlin
Contact:

Re: jogl3-Backend crashes on Mac Pros from 2008

Post by gunn » Mon 12. Nov 2012, 14:41

Jogl3 backend also crashes on my new-ish MacBook Pro with graphics card NVIDIA GeForce GT 650M 512 MB.

Hardware Overview:

Model Name: MacBook Pro
Model Identifier: MacBookPro9,1
Processor Name: Intel Core i7
Processor Speed: 2.3 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 6 MB
Memory: 8 GB
Boot ROM Version: MBP91.00D3.B06
SMC Version (system): 2.1f170
Serial Number (system): C02HW1D0F1G3
Hardware UUID: A0884B77-AB88-5298-8C55-90DD8016EDA2
Sudden Motion Sensor:
State: Enabled

Error message as follows (First 6 lines to stdout, last 3 lines to stderr):

setSceneRoot
JOGLPointSetInstance.JOGLPointSetInstance()
JOGLPointSetInstance.JOGLPointSetInstance()
set Aux Root
renderAsync
init!!!!!!!!!!!!
Program link error:
Validation Failed: Link error:
Program is not successfully linked.
jReality core developer

User avatar
gunn
Posts: 323
Joined: Thu 14. Dec 2006, 09:56
Location: TU Berlin
Contact:

Re: jogl3-Backend crashes on iMac and MacBook Pro

Post by gunn » Mon 12. Nov 2012, 15:07

Previous two posts were carried out with slightly old jReality version. My apologies. After updating to latest jReality jni and libs, the failure on the MacBook Pro remains the same (see previous post), and on the iMac the exception is detected and the following is printed:

JOGL3Viewer constuctor called
test
Profile GL3 is not available on MacOSXGraphicsDevice[type .macosx, connection decon, unitID 0, handle 0x0, NullToolkitLock[]], but: [GLProfile[GL2ES2/GL2.hw], GLProfile[GL2ES1/GL2.hw], GLProfile[GL2/GL2.hw], GLProfile[GL2/GL2.hw], GLProfile[GL2GL3/GL2.hw]]
Profile GL3bc is not available on MacOSXGraphicsDevice[type .macosx, connection decon, unitID 0, handle 0x0, NullToolkitLock[]], but: [GLProfile[GL2ES2/GL2.hw], GLProfile[GL2ES1/GL2.hw], GLProfile[GL2/GL2.hw], GLProfile[GL2/GL2.hw], GLProfile[GL2GL3/GL2.hw]]
Profile GL4 is not available on MacOSXGraphicsDevice[type .macosx, connection decon, unitID 0, handle 0x0, NullToolkitLock[]], but: [GLProfile[GL2ES2/GL2.hw], GLProfile[GL2ES1/GL2.hw], GLProfile[GL2/GL2.hw], GLProfile[GL2/GL2.hw], GLProfile[GL2GL3/GL2.hw]]
Profile GL4bc is not available on MacOSXGraphicsDevice[type .macosx, connection decon, unitID 0, handle 0x0, NullToolkitLock[]], but: [GLProfile[GL2ES2/GL2.hw], GLProfile[GL2ES1/GL2.hw], GLProfile[GL2/GL2.hw], GLProfile[GL2/GL2.hw], GLProfile[GL2GL3/GL2.hw]]
jReality core developer

User avatar
steffen
Posts: 186
Joined: Fri 16. Jun 2006, 13:30
Location: TU Berlin
Contact:

Re: jogl3-Backend crashes on Mac Pros from 2008

Post by steffen » Wed 14. Nov 2012, 21:06

Which versions of Mac OS are you using?

User avatar
gunn
Posts: 323
Joined: Thu 14. Dec 2006, 09:56
Location: TU Berlin
Contact:

Re: jogl3-Backend crashes on Mac Pros from 2008

Post by gunn » Thu 15. Nov 2012, 08:17

10.7.4 on the macbook pro, 10.6.x on the iMac.
jReality core developer

benjamin.kutschan
Posts: 48
Joined: Mon 16. May 2011, 16:29

Re: jogl3-Backend crashes on Mac Pros from 2008

Post by benjamin.kutschan » Fri 14. Dec 2012, 22:52

If you run the newest version of jogl3 it should give you a line of output showing all the available openGL versions on your machine.
OpenGl 3.3 should definitely be available on both your recent macs though.

User avatar
gunn
Posts: 323
Joined: Thu 14. Dec 2006, 09:56
Location: TU Berlin
Contact:

Re: jogl3-Backend crashes on Mac Pros from 2008

Post by gunn » Sat 15. Dec 2012, 13:18

With the latest jogl3 source from jreality svn, I get following printout when I run jrviewer on my macbook pro:

Code: Select all

Native[GL4bc false, GL4 false, GL3bc false, GL3 true [3.2 (Core profile, arb, FBO, hardware)], GL2 true [2.1 (Compatibility profile, arb, FBO, hardware)], GL2ES1 true, GLES1 false, GL2ES2 true, GLES2 false], Profiles[GLProfile[GL2ES2/GL2.hw], GLProfile[GL2ES1/GL2.hw], GLProfile[GL2/GL2.hw], GLProfile[GL3/GL3.hw], GLProfile[GL2/GL2.hw], GLProfile[GL2GL3/GL2.hw], , default GLProfile[GL2/GL2.hw]]
jReality core developer

benjamin.kutschan
Posts: 48
Joined: Mon 16. May 2011, 16:29

Re: jogl3-Backend crashes on Mac Pros from 2008

Post by benjamin.kutschan » Sat 15. Dec 2012, 20:06

On the following website someone has complained about Mountain Lion not supporting openGl 4, even though the underlying hardware surely does:
h++p://renderingpipeline.com/2012/06/mac-opengl-capabilities/

Let's hope that Apple releases openGL3.3 capable drivers soon.

benjamin.kutschan
Posts: 48
Joined: Mon 16. May 2011, 16:29

Re: jogl3-Backend crashes on Mac Pros from 2008

Post by benjamin.kutschan » Sun 3. Mar 2013, 23:13

Ok, plan for a fix is simple: Change glsl shader versions all from 3.30 to 1.50 (which corresponds then to openGL 3.2).
However maybe glVertexAttribDivisor() is not available in openGL 3.2 on Macs, so we would have to avoid it if 3.2 but not 3.3 is detected.

benjamin.kutschan
Posts: 48
Joined: Mon 16. May 2011, 16:29

FIXED: jogl3-Backend crashes on Mac Pros from 2008

Post by benjamin.kutschan » Mon 4. Mar 2013, 12:37

fixed :D
mac doesn't complain about GLSL 3.30, nor about glVertexAttribDivisor() (instancing).
However we shall not mix GL2 and GL3, as there is no GL3bc backwards compatibility profile.

Post Reply