Client rewrite β-testing

Announcements about major changes in Haven & Hearth.

Re: Client rewrite β-testing

Postby DPblH » Fri Jan 31, 2020 9:25 am

loftar wrote:200 cows, 100 pigs:

Have you also tried the same with mesh animations? It seems they eat more resources rather than skeletal animations are. Try to place bee hives, full trash stockpile, hearthfires, etc.
Give a man a game engine and he delivers a game. Teach a man how to make a game engine and he never delivers anything.
User avatar
DPblH
 
Posts: 427
Joined: Wed Jun 09, 2010 4:57 pm

Re: Client rewrite β-testing

Postby loftar » Fri Jan 31, 2020 11:57 pm

ubersheva wrote:Any news on the mac client? It still doesnt launch with invalid state error. Like something ogl-related is being done on the wrong thread. I can install eclipse and help debugging it on mac if needed, but i’m completely unfamiliar with 3d programming.

If you run it in a terminal, I believe it should dump the list of OpenGL commands that it was trying to execute while encountering that error. If you could do that and post that list, that would be a great first step, please.

DPblH wrote:Have you also tried the same with mesh animations? It seems they eat more resources rather than skeletal animations are. Try to place bee hives, full trash stockpile, hearthfires, etc.

Not sure what you're used to seeing, but this is with 500 beehives:
ss.png
ss.png (391.04 KiB) Viewed 521 times
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 8926
Joined: Fri Apr 03, 2009 7:05 am

Re: Client rewrite β-testing

Postby ubersheva » Sat Feb 01, 2020 12:11 am

ubersheva wrote:Any news on the mac client? It still doesnt launch with invalid state error. Like something ogl-related is being done on the wrong thread. I can install eclipse and help debugging it on mac if needed, but i’m completely unfamiliar with 3d programming.

so the invalid operation GL error was produced by glDrawBuffer command called for GL_BLACK buffer. After adding a call to gl.glGetError() after every run() call in BufferBGL.run() (to consume errors) the client started and I managed to log in. After the login the screen didnt update, but I managed to select a char blindly. The char entered world, screen remained black and the client hang with a new error.

Code: Select all
#<cmd glTexParameterfv(val$target=3553, val$pname=4100, val$param=[0.0, 0.0, 0.0, 1.0], val$n=0, this$0=#<dummy haven.render.gl.BufferBGL #1>)>
#<cmd glBindTexture(val$target=3553, val$texture=null, this$0=#<dummy haven.render.gl.BufferBGL #1>)>
#<cmd bglCheckErr(val$place=null, this$0=#<dummy haven.render.gl.BufferBGL #1>)>
Exception in thread "Render thread" java.lang.RuntimeException: haven.render.gl.BGL$BGLException: java.lang.RuntimeException: FBO failed completeness test: GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
   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.BGL$BGLException: java.lang.RuntimeException: FBO failed completeness test: GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
   at haven.render.gl.BufferBGL.run(BufferBGL.java:56)
   at haven.render.gl.GLEnvironment.process(GLEnvironment.java:115)
   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:756)
   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:80)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
   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)
Caused by: java.lang.RuntimeException: FBO failed completeness test: GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
   at haven.render.gl.GLFrameBuffer.lambda$null$0(GLFrameBuffer.java:63)
   at haven.render.gl.BGL$4.run(BGL.java:112)
   at haven.render.gl.BufferBGL.run(BufferBGL.java:49)
   ... 24 more
ubersheva
 
Posts: 67
Joined: Thu Apr 15, 2010 8:13 am

Re: Client rewrite β-testing

Postby ubersheva » Sat Feb 01, 2020 12:19 am

loftar wrote:
ubersheva wrote:Any news on the mac client? It still doesnt launch with invalid state error. Like something ogl-related is being done on the wrong thread. I can install eclipse and help debugging it on mac if needed, but i’m completely unfamiliar with 3d programming.

If you run it in a terminal, I believe it should dump the list of OpenGL commands that it was trying to execute while encountering that error. If you could do that and post that list, that would be a great first step, please.


it doesnt dump commands, probably because it happens at the very start. it did dump commands in the list after my edits, few last of them included in my previous quote.

Code: Select all
sheva@MacBook-Pro build % java -cp '*.jar' -Dhaven.defserv=game.havenandhearth.com -Dhaven.resurl=http://game.havenandhearth.com/render/res/ -Dhaven.cachebase=http://game.havenandhearth.com/render/ -jar hafen.jar
2020-02-01 02:16:17.314 java[55511:4697137] WARNING: NSWindow drag regions should only be invalidated on the Main Thread! This will throw an exception in the future. Called from (
   0   AppKit                              0x00007fff2fef2575 -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 371
   1   AppKit                              0x00007fff2fed9ed5 -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1416
   2   AppKit                              0x00007fff2fed9947 -[NSWindow initWithContentRect:styleMask:backing:defer:] + 42
   3   libnativewindow_macosx.jnilib       0x000000014239b77e Java_jogamp_nativewindow_macosx_OSXUtil_CreateNSWindow0 + 382
   4   ???                                 0x000000010be1f9f4 0x0 + 4494326260
)
Exception in thread "Render thread" 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:126)
   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:756)
   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:80)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
   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)
Exception in thread "AWT-EventQueue-0" 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:126)
   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 javax.media.opengl.Threading.invoke(Threading.java:193)
   at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:528)
   at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:582)
   at javax.media.opengl.awt.GLCanvas.update(GLCanvas.java:782)
   at sun.awt.RepaintArea.updateComponent(RepaintArea.java:255)
   at sun.lwawt.LWRepaintArea.updateComponent(LWRepaintArea.java:47)
   at sun.awt.RepaintArea.paint(RepaintArea.java:232)
   at sun.lwawt.LWComponentPeer.handleJavaPaintEvent(LWComponentPeer.java:1314)
   at sun.lwawt.LWComponentPeer.handleEvent(LWComponentPeer.java:1198)
   at java.awt.Component.dispatchEventImpl(Component.java:4965)
   at java.awt.Component.dispatchEvent(Component.java:4711)
   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:80)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
   at java.awt.EventQueue$4.run(EventQueue.java:731)
   at java.awt.EventQueue$4.run(EventQueue.java:729)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
   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)
^C%                       
ubersheva
 
Posts: 67
Joined: Thu Apr 15, 2010 8:13 am

Re: Client rewrite β-testing

Postby loftar » Sat Feb 01, 2020 1:55 am

ubersheva wrote: it doesnt dump commands

Right, I seem to have messed that up a bit. Please pull the latest code (including at least 33b18a81) and try again. Also, while you're at it, please enable the DebugGL thing by changing the false on line 139 in JOGLPanek.java to true, so as to check for GL errors on every command.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 8926
Joined: Fri Apr 03, 2009 7:05 am

Re: Client rewrite β-testing

Postby ubersheva » Sat Feb 01, 2020 3:31 pm

With new code and DebugGL2() impl.
Like I wrote earlier, failed commands are glDrawBuffer with 1029 as parameter, which is GL_BACK buffer.

edit: back, not black
Attachments
DebugGL2.log
console output of debugging version of client
(57.28 KiB) Downloaded 19 times
ubersheva
 
Posts: 67
Joined: Thu Apr 15, 2010 8:13 am

Re: Client rewrite β-testing

Postby ubersheva » Sat Feb 01, 2020 5:47 pm

Ran the app under OpenGL profiler from XCode. Stopped at the moment of INVALID_OPERATION error in glDrawBuffer and dumped some of info from the profiler.
Attachments
glprof-gldrawbuffer-fbo1.txt
(1.41 KiB) Downloaded 17 times
glprof-gldrawbuffer-callstack.txt
(537 Bytes) Downloaded 11 times
glprof-gldawbuffer-pixfmt.jpg
glprof-gldawbuffer-pixfmt.jpg (125.06 KiB) Viewed 427 times
ubersheva
 
Posts: 67
Joined: Thu Apr 15, 2010 8:13 am

Re: Client rewrite β-testing

Postby ubersheva » Sat Feb 01, 2020 5:48 pm

ubersheva wrote:Ran the app under OpenGL profiler from XCode.
Attachments
glprof-gldrawbuffer-state.txt
(248.84 KiB) Downloaded 17 times
glprof-gldrawbuffer-fbo2.txt
(1.41 KiB) Downloaded 14 times
ubersheva
 
Posts: 67
Joined: Thu Apr 15, 2010 8:13 am

Re: Client rewrite β-testing

Postby shubla » Sun Feb 02, 2020 3:47 pm

Code: Select all
java.lang.AssertionError
   at haven.render.gl.GLDrawList.add(GLDrawList.java:940)
   at haven.render.RenderList.syncadd(RenderList.java:65)
   at haven.render.RenderList.asyncadd(RenderList.java:83)
   at haven.ShadowMap$ShadowList.draw(ShadowMap.java:200)
   at haven.ShadowMap.update(ShadowMap.java:234)
   at haven.MapView.drawsmap(MapView.java:838)
   at haven.MapView.draw(MapView.java:1401)
   at haven.Widget.draw(Widget.java:728)
   at haven.Widget.draw(Widget.java:733)
   at haven.GameUI.draw(GameUI.java:829)
   at haven.Widget.draw(Widget.java:728)
   at haven.Widget.draw(Widget.java:733)
   at haven.RootWidget.draw(RootWidget.java:68)
   at haven.UI.draw(UI.java:150)
   at haven.JOGLPanel.display(JOGLPanel.java:322)
   at haven.JOGLPanel.run(JOGLPanel.java:381)
   at java.lang.Thread.run(Thread.java:748)

Logging in with laptop, has some integrated GPU I think. Mesa DRI Intel(R) UHD Graphics (Whiskey Lake 3x8 GT2)
Image
I'm not sure that I have a strong argument against sketch colors - Jorb, November 2019
http://i.imgur.com/CRrirds.png?1
Join the moderated unofficial discord for the game! https://discord.gg/2TAbGj2
Purus Pasta, The Best Client
User avatar
shubla
 
Posts: 13043
Joined: Sun Nov 03, 2013 11:26 am
Location: Finland

Re: Client rewrite β-testing

Postby maze » Sun Feb 02, 2020 7:16 pm

Can we add UI changes into the client rewrite?
would request separating the map and marker's box.
Give a button that would open the markers list.

Image

Image

and fixing how quest compass works.

the way it is now is hella confusing.
Image

maybe just make the market compass by in the map not on screen.
WARNING! MY ENGISH SUCKS.
game ideas
User avatar
maze
 
Posts: 2525
Joined: Sat Mar 27, 2010 3:15 am
Location: Canada

PreviousNext

Return to Announcements

Who is online

Users browsing this forum: Python-Requests [Bot] and 150 guests