Bug 67

Summary: Wood pile lighting crash.
Product: Salem Reporter: Velddrinn <velddrinn>
Component: ClientAssignee: loftar <fredrik>
Status: CONFIRMED ---    
Severity: normal    
Priority: ---    
Version: unspecified   
Hardware: PC   
OS: Windows   

Description Velddrinn 2012-10-03 08:20:12 CEST
After lighting a wood pile, game crashed. Now it crashes every time I login near that burning wood pile.

javax.media.opengl.GLException: haven.GOut$GLException: GL Error: 1280 (invalid enumerant)
	at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:271)
	at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:410)
	at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
	at haven.HavenPanel.uglyjoglhack(HavenPanel.java:382)
	at haven.HavenPanel.run(HavenPanel.java:416)
	at java.lang.Thread.run(Unknown Source)
Caused by: haven.GOut$GLException: GL Error: 1280 (invalid enumerant)
	at haven.GOut.checkerr(GOut.java:84)
	at haven.Light$LightList.unapply(Light.java:343)
	at haven.GLState$Applier.apply(GLState.java:433)
	at haven.GOut.apply(GOut.java:160)
	at haven.TexGL.render(TexGL.java:281)
	at haven.Tex.crender(Tex.java:89)
	at haven.Tex.crender(Tex.java:93)
	at haven.GOut.image(GOut.java:118)
	at haven.MenuGrid.draw(MenuGrid.java:157)
	at haven.Widget.draw(Widget.java:468)
	at haven.Widget.draw(Widget.java:473)
	at haven.GameUI.draw(GameUI.java:310)
	at haven.Widget.draw(Widget.java:468)
	at haven.Widget.draw(Widget.java:473)
	at haven.RootWidget.draw(RootWidget.java:61)
	at haven.UI.draw(UI.java:135)
	at haven.HavenPanel.redraw(HavenPanel.java:270)
	at haven.HavenPanel$1.display(HavenPanel.java:88)
	at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
	at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:435)
	at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
	at javax.media.opengl.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:452)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$400(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.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)
Comment 1 loftar 2012-10-04 04:05:21 CEST
Please run the console command ":applydb on" before making the client crash to see if that produces a more meaningful stacktrace.
Comment 2 Velddrinn 2012-10-05 06:59:14 CEST
Done, here`s what I got.

Checked this on another PC, everything works perfectly there. A glitch of integrated Intel video, maybe? DQ35MP motherboard.

javax.media.opengl.GLException: haven.GLState$Applier$ApplyException: Error in unapply of haven.ActAudio@19d6193
	at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:271)
	at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:410)
	at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
	at haven.HavenPanel.uglyjoglhack(HavenPanel.java:383)
	at haven.HavenPanel.run(HavenPanel.java:417)
	at java.lang.Thread.run(Unknown Source)
Caused by: haven.GLState$Applier$ApplyException: Error in unapply of haven.ActAudio@19d6193
	at haven.GLState$Applier.stcheckerr(GLState.java:490)
	at haven.GLState$Applier.apply(GLState.java:436)
	at haven.GOut.apply(GOut.java:160)
	at haven.TexGL.render(TexGL.java:281)
	at haven.Tex.crender(Tex.java:89)
	at haven.Tex.crender(Tex.java:93)
	at haven.GOut.image(GOut.java:151)
	at haven.Window.draw(Window.java:107)
	at haven.ToolBeltWdg.draw(ToolBeltWdg.java:192)
	at haven.Widget.draw(Widget.java:468)
	at haven.Widget.draw(Widget.java:473)
	at haven.GameUI.draw(GameUI.java:361)
	at haven.Widget.draw(Widget.java:468)
	at haven.Widget.draw(Widget.java:473)
	at haven.RootWidget.draw(RootWidget.java:63)
	at haven.UI.draw(UI.java:140)
	at haven.HavenPanel.redraw(HavenPanel.java:271)
	at haven.HavenPanel$1.display(HavenPanel.java:88)
	at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
	at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:435)
	at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
	at javax.media.opengl.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:452)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$400(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.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)
Caused by: haven.GOut$GLException: GL Error: 1280 (invalid enumerant)
	at haven.GOut.checkerr(GOut.java:84)
	at haven.GLState$Applier.stcheckerr(GLState.java:488)
	... 35 more
Comment 3 loftar 2012-10-05 07:08:57 CEST
There clearly are glitches with Intel integrated graphics, for sure (as is well documented on the forums), but it's very unclear what, and unfortunately even that backtrace doesn't help a lot. I'm fairly sure the real cause of the error is completely outside that rendering routine, and it's just a matter of the error not being detected until state application occurs. Unfortunately, I can't think of where that would be.