Opened 2 years ago

Closed 2 years ago

#6495 closed defect (fixed)

[macOS] Instant crash

Reported by: Langbart Owned by: Vladislav Belov
Priority: Release Blocker Milestone: Alpha 26
Component: Core engine Keywords:
Cc: Patch:

Description

to reproduce

  • Start 0ad on GIT version [26777]
  • Crash occurs regardless of user.cfg settings

lldb

(lldb) bt
* thread #1, name = 'main', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x0000000000000000
    frame #1: 0x00000001003f20bf pyrogenesis`Renderer::Backend::GL::CShaderProgramGLSL::CShaderProgramGLSL(this=<unavailable>, device=0x0000000105065580, name=<unavailable>, vertexFilePath=0x00007ffeefbfe010, fragmentFilePath=0x00007ffeefbfdff0, defines=0x00007ffeefbfdf80, vertexAttribs=size=2, streamflags=9) at ShaderProgram.cpp:358:3 [opt]
    frame #2: 0x00000001003ee76b pyrogenesis`Renderer::Backend::GL::CShaderProgram::Create(Renderer::Backend::GL::CDevice*, CStr8 const&, CShaderDefines const&) [inlined] Renderer::Backend::GL::CShaderProgramGLSL::CShaderProgramGLSL(this=0x00000001052d19b0, device=0x0000000105065580, name=0x00000001052cdb50, vertexFilePath=0x00007ffeefbfe010, fragmentFilePath=0x00007ffeefbfdff0, defines=0x00007ffeefbfdf80, vertexAttribs=size=2, streamflags=<unavailable>) at ShaderProgram.cpp:348:2 [opt]
    frame #3: 0x00000001003ee731 pyrogenesis`Renderer::Backend::GL::CShaderProgram::Create(Renderer::Backend::GL::CDevice*, CStr8 const&, CShaderDefines const&) [inlined] std::__1::__unique_if<Renderer::Backend::GL::CShaderProgramGLSL>::__unique_single std::__1::make_unique<Renderer::Backend::GL::CShaderProgramGLSL, Renderer::Backend::GL::CDevice*&, CStr8 const&, Path const&, Path const&, CShaderDefines const&, std::__1::map<CStrIntern, int, std::__1::less<CStrIntern>, std::__1::allocator<std::__1::pair<CStrIntern const, int> > > const&, int&>(__args=0x00000001052cdb50, __args=0x00007ffeefbfe010, __args=0x00007ffeefbfdff0, __args=0x00007ffeefbfdf80, __args=size=2) at memory:3033 [opt]
    frame #4: 0x00000001003ee71d pyrogenesis`Renderer::Backend::GL::CShaderProgram::Create(Renderer::Backend::GL::CDevice*, CStr8 const&, CShaderDefines const&) [inlined] Renderer::Backend::GL::CShaderProgram::ConstructGLSL(device=0x0000000105065580, name=0x00000001052cdb50, vertexFile=0x00007ffeefbfe010, fragmentFile=0x00007ffeefbfdff0, defines=0x00007ffeefbfdf80, vertexAttribs=size=2, streamflags=9) at ShaderProgram.cpp:985 [opt]
    frame #5: 0x00000001003ee71d pyrogenesis`Renderer::Backend::GL::CShaderProgram::Create(device=0x0000000105065580, name=0x00000001052cdb50, baseDefines=<unavailable>) at ShaderProgram.cpp:948 [opt]
    frame #6: 0x00000001003e73cc pyrogenesis`Renderer::Backend::GL::CDevice::CreateShaderProgram(this=<unavailable>, name=<unavailable>, defines=<unavailable>) at Device.cpp:826:9 [opt]
    frame #7: 0x0000000100336d95 pyrogenesis`CShaderProgram::Reload(this=0x00000001052cdb50) at ShaderProgram.cpp:39:35 [opt]
    frame #8: 0x000000010033125c pyrogenesis`CShaderManager::LoadProgram(this=0x000000010b894038, name=0x00007ffeefbfe530, defines=0x00007ffeefbfe3b0) at ShaderManager.cpp:79:12 [opt]
    frame #9: 0x0000000100334083 pyrogenesis`CShaderManager::NewEffect(this=0x000000010b894038, name=<unavailable>, baseDefines=0x00007ffeefbfebb8, tech=std::__1::shared_ptr<CShaderTechnique>::element_type @ 0x0000000105144650 strong=1 weak=1) at ShaderManager.cpp:398:5 [opt]
    frame #10: 0x0000000100331ab9 pyrogenesis`CShaderManager::LoadEffect(this=0x000000010b894038, name=CStrIntern @ 0x00007ffeefbfe8c8, defines=<unavailable>) at ShaderManager.cpp:122:7 [opt]
    frame #11: 0x00000001002c7ab2 pyrogenesis`CCanvas2D::Impl::BindTechIfNeeded(this=0x0000000105143a70) at Canvas2D.cpp:84:40 [opt]
    frame #12: 0x00000001002c84fd pyrogenesis`CCanvas2D::DrawTexture(this=0x00007ffeefbfee70, texture=std::__1::shared_ptr<CTexture>::element_type @ 0x00000001081a9580 strong=3 weak=2, destination=<unavailable>, source=<unavailable>, multiply=0x00000001156346f0, add=0x00000001156346e0, grayscaleFactor=0) at Canvas2D.cpp:318:5 [opt]
    frame #13: 0x000000010047aa1c pyrogenesis`GUIRenderer::Draw(Calls=0x00000001156141a0, canvas=0x00007ffeefbfee70) at GUIRenderer.cpp:344:10 [opt]
    frame #14: 0x0000000100494994 pyrogenesis`CImage::Draw(this=<unavailable>, canvas=<unavailable>) at CImage.cpp:36:9 [opt]
    frame #15: 0x0000000100451acc pyrogenesis`CGUI::Draw(this=<unavailable>, canvas=0x00007ffeefbfee70) at CGUI.cpp:346:25 [opt]
    frame #16: 0x0000000100471931 pyrogenesis`CGUIManager::Draw(this=<unavailable>, canvas=0x00007ffeefbfee70) const at GUIManager.cpp:396:10 [opt]
    frame #17: 0x00000001003a4ae7 pyrogenesis`CRenderer::RenderFrame2D(this=0x0000000108197c20, renderGUI=<unavailable>, renderLogger=<unavailable>) at Renderer.cpp:512:10 [opt]
    frame #18: 0x00000001003a2cbe pyrogenesis`CRenderer::RenderFrameImpl(this=0x0000000108197c20, renderGUI=true, renderLogger=true) at Renderer.cpp:482:2 [opt]
    frame #19: 0x00000001003a2aaa pyrogenesis`CRenderer::RenderFrame(this=0x0000000108197c20, needsPresent=true) at Renderer.cpp:429:4 [opt]
    frame #20: 0x0000000100006a71 pyrogenesis`RunGameOrAtlas(int, char const**) [inlined] Frame() at main.cpp:452:13 [opt]
    frame #21: 0x00000001000061c0 pyrogenesis`RunGameOrAtlas(argc=<unavailable>, argv=<unavailable>) at main.cpp:691 [opt]
    frame #22: 0x00000001000047b6 pyrogenesis`main(argc=1, argv=0x00007ffeefbff680) at main.cpp:743:2 [opt]
    frame #23: 0x00007fff6814dcc9 libdyld.dylib`start + 1

bisect

[26776]

Change History (1)

comment:1 by Vladislav Belov, 2 years ago

Owner: set to Vladislav Belov
Resolution: fixed
Status: newclosed

In 26780:

Adds GL debug labels only if they are supported (forgotten in rP26776). Fixes #6495

Note: See TracTickets for help on using tickets.