Jump to content

Feedbacks from A26 SVN tests


Recommended Posts

6 minutes ago, Nullus said:

The map was "Alpine Valleys" the second time, the first time it was "Chang Jiang". The first case was within five minutes of the start, the second was about ten minutes in. I've played other, much longer games, so I don't think that the time played affects it.

Thanks! Is it possible for you to run and play the game with GDB (it allows to resolve the stack with related source lines)?

Link to comment
Share on other sites

18 minutes ago, Nullus said:

How do I run it with GDB? I don't know how to reproduce the error, so I'm not sure how useful that would be.

Basically instead of running the game through the shortcut you run it throught the commandline

e.g gdb 0ad or gdb pyrogenesis

When it crashes in the command line run bt (for backtrace) and upload it here :)

Link to comment
Share on other sites

Okay, I ran the game with gdb and encountered the crash. The backtrace reported this:

#0  Renderer::Backend::GL::CDeviceCommandContext::SetFramebuffer (
    this=0x55555638a490, framebuffer=0x0)
    at ../../../source/renderer/backend/gl/DeviceCommandContext.cpp:681
#1  0x0000555555966fdc in ShadowMap::BeginRender (
    this=this@entry=0x555556451838)
    at ../../../source/renderer/ShadowMap.cpp:578
#2  0x000055555595d881 in CSceneRenderer::RenderShadowMap (
    this=0x5555563a8280, deviceCommandContext=0x55555638a490, context=...)
    at ../../../source/renderer/SceneRenderer.cpp:305
#3  0x0000555555961c0e in CSceneRenderer::RenderSubmissions (
    this=0x5555563a8280, deviceCommandContext=0x55555638a490, waterScissor=...)
    at ../../../source/renderer/SceneRenderer.cpp:798
#4  0x000055555596241e in CSceneRenderer::RenderScene (this=0x5555563a8280, 
    deviceCommandContext=0x55555638a490, scene=...)
    at ../../../source/renderer/SceneRenderer.cpp:1161
#5  0x00005555558e45e1 in CGameView::Render (this=<optimized out>)
    at ../../../source/graphics/GameView.cpp:238
#6  0x00005555559522a1 in CRenderer::RenderFrameImpl (this=0x555556436c00, 
    renderGUI=<optimized out>, renderLogger=<optimized out>)
    at ../../../source/ps/Game.h:167
#7  0x00005555559545ae in CRenderer::RenderFrame (this=0x555556436c00, 
    needsPresent=<optimized out>) at ../../../source/renderer/Renderer.cpp:429
#8  0x00005555556049bf in Frame () at ../../../source/ps/Singleton.h:51
#9  RunGameOrAtlas (argc=<optimized out>, argv=<optimized out>)
    at ../../../source/main.cpp:691
--Type <RET> for more, q to quit, c to continue without paging--
#10 0x00005555555f012e in main (argc=1, argv=0x7fffffffe028)
    at ../../../source/main.cpp:743

 

  • Thanks 1
Link to comment
Share on other sites

It crashed again, gdb reported:

DeviceCommandContext.cpp(680): Assertion failed: "framebuffer"

Thread 1 "main" received signal SIGSEGV, Segmentation fault.
Renderer::Backend::GL::CDeviceCommandContext::SetFramebuffer (this=0x55555631ed30, framebuffer=0x0) at ../../../source/renderer/backend/gl/DeviceCommandContext.cpp:681
681		ENSURE(framebuffer->GetHandle() == 0 || (framebuffer->GetWidth() > 0 && framebuffer->GetHeight() > 0));

[Current thread is 1 (Thread 0x7ffff2b28e40 (LWP 669743))]
(gdb) bt
#0  Renderer::Backend::GL::CDeviceCommandContext::SetFramebuffer (
    this=0x55555631ed30, framebuffer=0x0)
    at ../../../source/renderer/backend/gl/DeviceCommandContext.cpp:681
#1  0x0000555555966fdc in ShadowMap::BeginRender (
    this=this@entry=0x555556451fd8)
    at ../../../source/renderer/ShadowMap.cpp:578
#2  0x000055555595d881 in CSceneRenderer::RenderShadowMap (
    this=0x5555563b1280, deviceCommandContext=0x55555631ed30, context=...)
    at ../../../source/renderer/SceneRenderer.cpp:305
#3  0x0000555555961c0e in CSceneRenderer::RenderSubmissions (
    this=0x5555563b1280, deviceCommandContext=0x55555631ed30, waterScissor=...)
    at ../../../source/renderer/SceneRenderer.cpp:798
#4  0x000055555596241e in CSceneRenderer::RenderScene (this=0x5555563b1280, 
    deviceCommandContext=0x55555631ed30, scene=...)
    at ../../../source/renderer/SceneRenderer.cpp:1161
#5  0x00005555558e45e1 in CGameView::Render (this=<optimized out>)
    at ../../../source/graphics/GameView.cpp:238
#6  0x00005555559522a1 in CRenderer::RenderFrameImpl (this=0x5555564375c0, 
    renderGUI=<optimized out>, renderLogger=<optimized out>)
    at ../../../source/ps/Game.h:167
#7  0x00005555559545ae in CRenderer::RenderFrame (this=0x5555564375c0, 
    needsPresent=<optimized out>) at ../../../source/renderer/Renderer.cpp:429
#8  0x00005555556049bf in Frame () at ../../../source/ps/Singleton.h:51
#9  RunGameOrAtlas (argc=<optimized out>, argv=<optimized out>)
    at ../../../source/main.cpp:691
--Type <RET> for more, q to quit, c to continue without paging--
#10 0x00005555555f012e in main (argc=1, argv=0x7fffffffe028)
    at ../../../source/main.cpp:743

 

Link to comment
Share on other sites

I haven't found any reliable steps to reproduce. I've been getting the error every time I play "Alpine Valleys", but not at any reliable time in the game. I don't know which other maps the error occurs on, or if it even depends on the map. I haven't changed my graphics settings since A26 development began. I've been playing SVN since the A25 release, and I haven't noticed this error until 1-2 weeks ago.

graphics.png

Link to comment
Share on other sites

On 27/02/2022 at 10:21 PM, vladislavbelov said:

I've committed few additional checks to the SVN. Could you update and compile the game?

I've updated the game and played several matches without any errors so far, so I'll cautiously assume that this is fixed.

  • Like 1
Link to comment
Share on other sites

4 hours ago, Nullus said:

I've updated the game and played several matches without any errors so far, so I'll cautiously assume that this is fixed.

Unfortunately, it looks like I was wrong. I just got the same crash again, this time gdb reported:

Thread 1 "main" received signal SIGSEGV, Segmentation fault.
mozalloc_abort (msg=msg@entry=0x7ffff7c283b0 "Redirecting call to abort() to mozalloc_abort\n") at /home/aaron/0ad/libraries/source/spidermonkey/mozjs-78.6.0/memory/mozalloc/mozalloc_abort.cpp:33
33	  MOZ_CRASH();
btdb) 
#0  mozalloc_abort (
    msg=msg@entry=0x7ffff7c283b0 "Redirecting call to abort() to mozalloc_abort\n")
    at /home/aaron/0ad/libraries/source/spidermonkey/mozjs-78.6.0/memory/mozalloc/mozalloc_abort.cpp:33
#1  0x00007ffff723d607 in abort ()
    at /home/aaron/0ad/libraries/source/spidermonkey/mozjs-78.6.0/memory/mozalloc/mozalloc_abort.cpp:82
#2  0x00005555555e4c28 in try_gui_display_error (no_continue=<optimized out>, 
    allow_suppress=<optimized out>, manual_break=<optimized out>, 
    text=<optimized out>) at ../../../source/lib/sysdep/os/unix/unix.cpp:197
#3  sys_display_error (
    text=text@entry=0x555555d6bba0 <(anonymous namespace)::g_MessageBuffer> L"Assertion failed: \"framebuffer\"\r\nLocation: DeviceCommandContext.cpp:680 (SetFramebuffer)\r\n\r\nCall stack:\r\n\r\n(0x555555b53c15) /home/aaron/0ad/binaries/system/pyrogenesis(+0x5ffc15) [0x555555b53c15]\n(0x5"..., 
    flags=<optimized out>, flags@entry=6)
    at ../../../source/lib/sysdep/os/unix/unix.cpp:216
#4  0x0000555555b0283b in CallDisplayError (flags=6, 
    text=0x555555d6bba0 <(anonymous namespace)::g_MessageBuffer> L"Assertion failed: \"framebuffer\"\r\nLocation: DeviceCommandContext.cpp:680 (SetFramebuffer)\r\n\r\nCall stack:\r\n\r\n(0x555555b53c15) /home/aaron/0ad/binaries/system/pyrogenesis(+0x5ffc15) [0x555555b53c15]\n(0x5"...)
    at ../../../source/lib/debug.cpp:374
#5  debug_DisplayError (
    description=0x7fffffffc400 L"Assertion failed: \"framebuffer\"", flags=6, 
    context=<optimized out>, lastFuncToSkip=<optimized out>, 
--Type <RET> for more, q to quit, c to continue without paging--
    pathname=<optimized out>, line=680, func=0x555555c43453 "SetFramebuffer", 
    suppress=0x555555d69f60 <Renderer::Backend::GL::CDeviceCommandContext::SetFramebuffer(Renderer::Backend::GL::CFramebuffer*)::suppress__>)
    at ../../../source/lib/debug.cpp:460
#6  0x0000555555b02948 in debug_OnAssertionFailure (
    expr=expr@entry=0x555555c43eb8 L"framebuffer", 
    suppress=suppress@entry=0x555555d69f60 <Renderer::Backend::GL::CDeviceCommandContext::SetFramebuffer(Renderer::Backend::GL::CFramebuffer*)::suppress__>, 
    file=file@entry=0x555555c434b8 L"../../../source/renderer/backend/gl/DeviceCommandContext.cpp", line=line@entry=680, 
    func=func@entry=0x555555c43453 "SetFramebuffer")
    at ../../../source/lib/debug.cpp:547
#7  0x00005555559974b6 in Renderer::Backend::GL::CDeviceCommandContext::SetFramebuffer (this=0x555556347110, framebuffer=0x0)
    at ../../../source/renderer/backend/gl/DeviceCommandContext.cpp:680
#8  0x0000555555966fe1 in ShadowMap::BeginRender (
    this=this@entry=0x555556452728)
    at /usr/include/c++/11/bits/unique_ptr.h:173
#9  0x000055555595d881 in CSceneRenderer::RenderShadowMap (
    this=0x5555563b2280, deviceCommandContext=0x555556347110, context=...)
    at ../../../source/renderer/SceneRenderer.cpp:305
#10 0x0000555555961c0e in CSceneRenderer::RenderSubmissions (
    this=0x5555563b2280, deviceCommandContext=0x555556347110, waterScissor=...)
    at ../../../source/renderer/SceneRenderer.cpp:798
#11 0x000055555596241e in CSceneRenderer::RenderScene (this=0x5555563b2280, 
    deviceCommandContext=0x555556347110, scene=...)
    at ../../../source/renderer/SceneRenderer.cpp:1161
--Type <RET> for more, q to quit, c to continue without paging--
#12 0x00005555558e45e1 in CGameView::Render (this=<optimized out>)
    at ../../../source/graphics/GameView.cpp:238
#13 0x00005555559522a1 in CRenderer::RenderFrameImpl (this=0x5555564380e0, 
    renderGUI=<optimized out>, renderLogger=<optimized out>)
    at ../../../source/ps/Game.h:167
#14 0x00005555559545ae in CRenderer::RenderFrame (this=0x5555564380e0, 
    needsPresent=<optimized out>) at ../../../source/renderer/Renderer.cpp:429
#15 0x00005555556049bf in Frame () at ../../../source/ps/Singleton.h:51
#16 RunGameOrAtlas (argc=<optimized out>, argv=<optimized out>)
    at ../../../source/main.cpp:691
#17 0x00005555555f012e in main (argc=1, argv=0x7fffffffe028)
    at ../../../source/main.cpp:743

 

Link to comment
Share on other sites

On 27/02/2022 at 5:52 PM, vladislavbelov said:

Also do you have steps to reproduce?

I have found a way to reproduce it now. It always crashes when I move the building placement preview for some reasonably complex building, such as a stable, over an area outside of the map boundaries. It doesn't seem to work with simpler buildings, such as a house.

  • Thanks 1
Link to comment
Share on other sites

37 minutes ago, Nullus said:

It always crashes when I move the building placement preview for some reasonably complex building, such as a stable, over an area outside of the map boundaries.

can reproduce, same for me. It doesn't trigger with every building and sometimes you have to move it around quite a bit outside of the map boundary to trigger.

interestingly my error just says: (error while formatting error message) and I can click continue without crashing.

Edited by maroder
Link to comment
Share on other sites

I tested the Han, I noticed that they have access champions through captured stables or barracks, not sure if that would make sense since they don't have to search for some upgrades or anything of the kind.

The Han have also access to will-to-fight on top of their own fort technology when they capture an enemy fort.

After capturing an enemy fort and its stables and making all upgrades and getting the right hero, I was able to spam champion crossbowmen war chariots that had 114 damages per 1 second. That seemed to be slightly too high compared to the already quite good performance of britanic war chariots with Boudica that can currently reached 85.7 per 1.25 seconds ...  

Edited by faction02
  • Thanks 1
Link to comment
Share on other sites

8 hours ago, Nullus said:

I have found a way to reproduce it now. It always crashes when I move the building placement preview for some reasonably complex building, such as a stable, over an area outside of the map boundaries. It doesn't seem to work with simpler buildings, such as a house.

Thank you very much for testing! I added a fix, though it might have a bit different stack. Could you try the latest SVN?

  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...