java.lang.NullPointerException
at haven.render.Phong$CelShade.modify(Phong.java:83)
at haven.render.gl.GLProgram.build(GLProgram.java:122)
at haven.render.gl.GLEnvironment.getprog(GLEnvironment.java:496)
at haven.render.gl.GLDrawList$DrawSlot.progfor(GLDrawList.java:251)
at haven.render.gl.GLDrawList$DrawSlot.<init>(GLDrawList.java:340)
at haven.render.gl.GLDrawList.add(GLDrawList.java:937)
at haven.render.InstanceList.lambda$cladd$0(InstanceList.java:475)
at java.util.ArrayList.forEach(ArrayList.java:1257)
at haven.render.InstanceList.cladd(InstanceList.java:475)
at haven.render.InstanceList.add0(InstanceList.java:508)
at haven.render.InstanceList.add(InstanceList.java:574)
at haven.render.RenderTree$Client.added(RenderTree.java:62)
at haven.render.RenderTree$TreeSlot.add(RenderTree.java:432)
at haven.render.RenderTree$TreeSlot.add(RenderTree.java:356)
at haven.render.RenderTree$Slot.add(RenderTree.java:343)
at haven.render.Pipe$Op$Wrapping.added(Pipe.java:127)
at haven.render.RenderTree$TreeSlot.add(RenderTree.java:452)
at haven.render.RenderTree$TreeSlot.add(RenderTree.java:356)
at haven.render.RenderTree$Slot.add(RenderTree.java:343)
at haven.StaticSprite.added(StaticSprite.java:81)
at haven.render.RenderTree$TreeSlot.add(RenderTree.java:452)
at haven.render.RenderTree$TreeSlot.add(RenderTree.java:356)
at haven.render.RenderTree$Slot.add(RenderTree.java:343)
at haven.Gob$Overlay.added(Gob.java:108)
at haven.render.RenderTree$TreeSlot.add(RenderTree.java:452)
at haven.render.RenderTree$TreeSlot.add(RenderTree.java:356)
at haven.render.RenderTree$Slot.add(RenderTree.java:343)
at haven.RUtils.multiadd(RUtils.java:46)
at haven.Gob$Overlay.init(Gob.java:79)
at haven.Gob$Overlay.access$200(Gob.java:46)
at haven.Gob.ctick(Gob.java:214)
at haven.OCache.lambda$ctick$0(OCache.java:115)
at java.util.ArrayList.forEach(ArrayList.java:1257)
at haven.OCache.ctick(OCache.java:119)
at haven.Glob.ctick(Glob.java:134)
at haven.JOGLPanel.run(JOGLPanel.java:358)
at java.lang.Thread.run(Thread.java:748)
java.lang.RuntimeException: haven.render.gl.GLException$GLInvalidOperationException: GL Error: 1282 (invalid operation)
at com.jogamp.common.util.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:528)
at haven.JOGLPanel.uglyjoglhack(JOGLPanel.java:188)
at haven.JOGLPanel.renderloop(JOGLPanel.java:209)
at java.lang.Thread.run(Thread.java:748)
Caused by: haven.render.gl.GLException$GLInvalidOperationException: GL Error: 1282 (invalid operation)
at haven.render.gl.GLException.glexcfor(GLException.java:88)
at haven.render.gl.GLException.checkfor(GLException.java:97)
at haven.render.gl.GLException.checkfor(GLException.java:104)
at haven.render.gl.GLEnvironment.process(GLEnvironment.java:124)
at haven.JOGLPanel.redraw(JOGLPanel.java:139)
at haven.JOGLPanel.access$000(JOGLPanel.java:39)
at haven.JOGLPanel$1.display(JOGLPanel.java:76)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:649)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:633)
at javax.media.opengl.awt.GLCanvas$9.run(GLCanvas.java:1271)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1103)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:978)
at javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1282)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Yormungandr, gurbibal master, drunken hunter, the thief of Constantinopol, he who never died of man`s hand, son of Severin, grandson of Yozz, Yozzik, Wengdalf. Also an owl.
The building crash bug is one of the easiest to reproduce... But most seem very random like the skybox one, I had it 3 times in ~2h of testing, twice in a row when logging in on a lake during day and later in village when exiting a house.
loftar wrote:Thanks for all the reports! I'll be going through them.
wonder-ass wrote:shame it doesnt really help when you have extreme amount of animals on screen.
i did notice a slight fps boost in like a decent amount of animals so hoping the game can stay stable with like 40 ish players on screen.
Did you try :par on, as indicated in the OP? I've found that it gives a rather tremendous boost to performance in those particular circumstances, at least on my system.
That being said, animals and players should also be given GPU-side skinning. That'll be one of the first projects as soon as the new client is in use.
with :par on im getting a significant boost in fps through out the village 30+ and this is with a client that has full animations on which is pretty huge.
on private client im getting average 30/50 fps around the village with all settings off and most animations off /beehive/animals/stockpiles/small crops/.
the only down side is that i think it didnt do much for the animation lag when there are a lot of players on screen as like 40/50 animals still drops my fps to 30-.
Last edited by wonder-ass on Sat Jan 11, 2020 10:21 pm, edited 1 time in total.
haven.render.RenderTree$SlotRemoved
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.util.concurrent.ForkJoinTask.getThrowableException(Unknown Source)
at java.util.concurrent.ForkJoinTask.reportException(Unknown Source)
at java.util.concurrent.ForkJoinTask.invoke(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.forEach(Unknown Source)
at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)
at haven.render.TickList.tick(TickList.java:142)
at haven.PView.tick(PView.java:141)
at haven.MapView.tick(MapView.java:1421)
at haven.Widget.tick(Widget.java:702)
at haven.GameUI.tick(GameUI.java:856)
at haven.Widget.tick(Widget.java:702)
at haven.UI.tick(UI.java:145)
at haven.JOGLPanel.run(JOGLPanel.java:362)
at java.lang.Thread.run(Unknown Source)
Caused by: haven.render.RenderTree$SlotRemoved
at haven.render.RenderTree$TreeSlot.chstate(RenderTree.java:620)
at haven.render.RenderTree$TreeSlot.ostate(RenderTree.java:652)
at haven.RUtils$StateNode.update(RUtils.java:104)
at haven.RUtils$StateTickNode.autotick(RUtils.java:140)
at haven.render.TickList.lambda$tick$0(TickList.java:135)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source)
at java.util.concurrent.CountedCompleter.exec(Unknown Source)
at java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source)
at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
not sure what caused this big open field with wheat and barrels a few trellis too
java.lang.RuntimeException: Specified texture 0 for gfx/kritter/reindeer/reindeerhide(v1) not found in <indir:gfx/kritter/reindeer/reindeerhide(v1)>
at haven.TexRender$$tex$1.resolve(TexRender.java:170)
at haven.Material$Res.get(Material.java:175)
at haven.RenderLink$Res$1.make(RenderLink.java:76)
at haven.StaticSprite.lsparts(StaticSprite.java:70)
at haven.StaticSprite.<init>(StaticSprite.java:58)
at haven.StaticSprite$1$1.<init>(StaticSprite.java:39)
at haven.StaticSprite$1.create(StaticSprite.java:39)
at haven.Sprite.create(Sprite.java:143)
at haven.res.gfx.terobjs.arch.hwall.Wall.<init>(hwall.cjava:57)
at sun.reflect.GeneratedConstructorAccessor24.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at haven.Utils.construct(Utils.java:1332)
at haven.Sprite$2.create(Sprite.java:99)
at haven.Sprite.create(Sprite.java:140)
at haven.ResDrawable.<init>(ResDrawable.java:42)
at haven.OCache.cres(OCache.java:223)
at haven.OCache.lambda$cres$4(OCache.java:235)
at haven.OCache$GobInfo.apply(OCache.java:709)
at haven.Loader.lambda$defer$0(Loader.java:180)
at haven.Loader$Future.run(Loader.java:65)
at haven.Loader$Future.access$200(Loader.java:40)
at haven.Loader.loop(Loader.java:142)
at java.lang.Thread.run(Unknown Source)
haven.render.RenderTree$SlotRemoved
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.util.concurrent.ForkJoinTask.getThrowableException(Unknown Source)
at java.util.concurrent.ForkJoinTask.reportException(Unknown Source)
at java.util.concurrent.ForkJoinTask.invoke(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(Unknown Source)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.forEach(Unknown Source)
at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)
at haven.render.TickList.tick(TickList.java:142)
at haven.PView.tick(PView.java:141)
at haven.MapView.tick(MapView.java:1421)
at haven.Widget.tick(Widget.java:702)
at haven.GameUI.tick(GameUI.java:856)
at haven.Widget.tick(Widget.java:702)
at haven.UI.tick(UI.java:145)
at haven.JOGLPanel.run(JOGLPanel.java:362)
at java.lang.Thread.run(Unknown Source)
Caused by: haven.render.RenderTree$SlotRemoved
at haven.render.RenderTree$TreeSlot.chstate(RenderTree.java:620)
at haven.render.RenderTree$TreeSlot.ostate(RenderTree.java:652)
at haven.RUtils$StateNode.update(RUtils.java:104)
at haven.RUtils$StateTickNode.autotick(RUtils.java:140)
at haven.render.TickList.lambda$tick$0(TickList.java:135)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source)
at java.util.concurrent.CountedCompleter.exec(Unknown Source)
at java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.util.concurrent.ForkJoinPool$WorkQueue.execLocalTasks(Unknown Source)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source)
at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)