Bug 106

Summary: JOGL fails to startup on Inter extreme graphics hardware - Exception with wglGetPixelFormatAttribivARB
Product: [JogAmp] Jogl Reporter: Sven Gothel <sgothel>
Component: coreAssignee: Sven Gothel <sgothel>
Status: VERIFIED FIXED    
Severity: normal    
Priority: P5    
Version: 1   
Hardware: All   
OS: windows   
Type: DEFECT SCM Refs:
Workaround: ---

Description Sven Gothel 2010-03-24 07:46:53 CET


---- Reported by bjannu 2004-08-30 13:46:24 ----

JOGL doesn work on Intel extreme graphics (its shared memory graphics hardware).

any JOGL apps fails to start up. 
following is the exception.

------------------------------------------------------------------

net.java.games.jogl.GLException: Unable to enumerate pixel formats of window
using wglGetPixelFormatAttribivARB: 0
	at
net.java.games.jogl.impl.windows.WindowsGLContext.choosePixelFormatAndCreateContext(WindowsGLContext.java:412)
	at
net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.create(WindowsOnscreenGLContext.java:211)
	at
net.java.games.jogl.impl.windows.WindowsGLContext.makeCurrent(WindowsGLContext.java:135)
	at
net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent(WindowsOnscreenGLContext.java:110)
	at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:254)
	at net.java.games.jogl.GLCanvas.reshape(GLCanvas.java:112)
	at java.awt.Component.setBounds(Component.java:1664)
	at java.awt.GridBagLayout.ArrangeGrid(GridBagLayout.java:1519)
	at java.awt.GridBagLayout.arrangeGrid(GridBagLayout.java:1337)
	at java.awt.GridBagLayout.layoutContainer(GridBagLayout.java:706)
	at java.awt.Container.layout(Container.java:1020)
	at java.awt.Container.doLayout(Container.java:1010)
	at java.awt.Container.validateTree(Container.java:1092)
	at java.awt.Container.validateTree(Container.java:1099)
	at java.awt.Container.validateTree(Container.java:1099)
	at java.awt.Container.validateTree(Container.java:1099)
	at java.awt.Container.validateTree(Container.java:1099)
	at java.awt.Container.validate(Container.java:1067)
	at java.awt.Window.pack(Window.java:444)
	at cseo.viz.app.psiviewer.PsiViewerFrame.<init>(PsiViewerFrame.java:485)
	at cseo.gui.DesktopFrame.initPsiViewer(DesktopFrame.java:709)
	at cseo.gui.DesktopFrame.actionPerformed(DesktopFrame.java:1001)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
	at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
	at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
	at java.awt.Component.processMouseEvent(Component.java:5100)
	at java.awt.Component.processEvent(Component.java:4897)
	at java.awt.Container.processEvent(Container.java:1569)
	at java.awt.Component.dispatchEventImpl(Component.java:3615)
	at java.awt.Container.dispatchEventImpl(Container.java:1627)
	at java.awt.Component.dispatchEvent(Component.java:3477)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
	at java.awt.Container.dispatchEventImpl(Container.java:1613)
	at java.awt.Window.dispatchEventImpl(Window.java:1606)
	at java.awt.Component.dispatchEvent(Component.java:3477)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
	at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
	at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)



---- Additional Comments From kbr 2005-01-26 17:50:16 ----

This has been fixed by providing a fall-through path in
WindowsGLContext.choosePixelFormatAndCreateContext(); if
wglGetPixelFormatAttribivARB fails with an error code of 0, it falls back to
using ChoosePixelFormat.

This allows at least simple JOGL programs to work on Intel Extreme graphics
hardware. Note that issues have still been seen where if any OpenGL rendering is
done from the AWT thread, attempting to swap the buffers on another thread will
fail. This is a bug in Intel's drivers that can be worked around with careful
organization of the application's JOGL initialization code.




--- Bug imported by sgothel@jausoft.com 2010-03-24 07:46 EDT  ---

This bug was previously known as _bug_ 106 at https://jogl.dev.java.net/bugs/show_bug.cgi?id=106

The original assignee of this bug does not have
   an account here. Reassigning to the default assignee
   for the component, sgothel@jausoft.com.
   Previous assignee was gkw.