Ogre crash introduced with rendering fix

Support for running, installing or compiling OpenMW

Before you submit a bug report for the first time, please read: Bug reporting guidelines
User avatar
werdanith
Posts: 295
Joined: 26 Aug 2011, 16:18

Ogre crash introduced with rendering fix

Post by werdanith »

I get this crash when I coc to Pelagiad, Vivec, Caldera or Seyda Neen and I don't see anybody else complaining.

Code: Select all

openmw: /build/buildd/ogre-1.7.3/OgreMain/include/OgreAxisAlignedBox.h:252: void Ogre::AxisAlignedBox::setExtents(const Ogre::Vector3&, const Ogre::Vector3&): Assertion `(min.x <= max.x && min.y <= max.y && min.z <= max.z) && "The minimum corner of the box must be less than or equal to maximum corner"' failed.
I checked with git and the merge of the branch renderingfix introduces it.
I'm using Ogre 1.7.3.
Is anybody else getting it?
User avatar
werdanith
Posts: 295
Joined: 26 Aug 2011, 16:18

Re: Ogre crash introduced with rendering fix

Post by werdanith »

Upon further inspection, it's exactly this commit that causes it
c471aa950f89bf674a49d7ea2f5a385643954eb5
When I revert it from master the game works ok.

Edit: lgro reports that he doesn't get it with: community/ogre 1.8.0RC1-3
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Ogre crash introduced with rendering fix

Post by Zini »

Well, I don't get it either. OGRE 1.7.1, though.
User avatar
werdanith
Posts: 295
Joined: 26 Aug 2011, 16:18

Re: Ogre crash introduced with rendering fix

Post by werdanith »

I got the source of Ogre, compiled and installed version 1.7.1, completely recompiled OpenMW, and I get exactly the same error. What's next? Could it be a hardware issue?
I have a Radeon X1950 Pro with the gallium3d drivers, Mesa version 7.11
Could it be a different component causing it?
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Ogre crash introduced with rendering fix

Post by Zini »

I don't see how this could be hardware or driver related, because the crash seems to be caused by something related to bounding box calculations.

Well, no idea. I would suspect that there are other subtle differences with your setup, but it seems you have mostly ruled out that already.

What you could try is to get a stack trace by running OpenMW in a debugger.
User avatar
werdanith
Posts: 295
Joined: 26 Aug 2011, 16:18

Re: Ogre crash introduced with rendering fix

Post by werdanith »

Ok, time to figure out how to do that.
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Ogre crash introduced with rendering fix

Post by Zini »

Hint: When running OpenMW under a debugger, don't forget to use the --debug switch (see ./openmw --help for details).
ezzetabi
Posts: 407
Joined: 03 Feb 2012, 16:52

Re: Ogre crash introduced with rendering fix

Post by ezzetabi »

Is openmw compiled with symbols by default?

If so it should be enough doing:
gdb
file /usr/bin/openmw
run
<crash>
bt

My copy has no symbols, how can I compile with -ggdb? Is there an easy way?
User avatar
werdanith
Posts: 295
Joined: 26 Aug 2011, 16:18

Re: Ogre crash introduced with rendering fix

Post by werdanith »

Result:

Code: Select all

(gdb) backtrace
#0  0x00130416 in __kernel_vsyscall ()
#1  0x00af5c8f in raise () from /lib/i386-linux-gnu/libc.so.6
#2  0x00af92b5 in abort () from /lib/i386-linux-gnu/libc.so.6
#3  0x00aee826 in __assert_fail () from /lib/i386-linux-gnu/libc.so.6
#4  0x00524659 in Ogre::AxisAlignedBox::setExtents (max=<optimized out>, 
    min=<optimized out>, this=<optimized out>)
    at /home/michael/Desktop/Code/ogre/ogre/OgreMain/include/OgreAxisAlignedBox.h:251
#5  0x005282e2 in setExtents (max=<optimized out>, min=<optimized out>, 
    this=<optimized out>)
    at /home/michael/Desktop/Code/ogre/ogre/OgreMain/include/OgreAxisAlignedBox.h:252
#6  merge (rhs=<optimized out>, this=<optimized out>)
    at /home/michael/Desktop/Code/ogre/ogre/OgreMain/include/OgreAxisAlignedBox.h:405
#7  Ogre::StaticGeometry::Region::assign (this=0xafa8d780, qmesh=0xb77e9d58)
    at /home/michael/Desktop/Code/ogre/ogre/OgreMain/src/OgreStaticGeometry.cpp:789
#8  0x0052cbef in Ogre::StaticGeometry::build (this=0xb70e1338)
    at /home/michael/Desktop/Code/ogre/ogre/OgreMain/src/OgreStaticGeometry.cpp:559
#9  0x084c4b13 in MWRender::Objects::buildStaticGeometry(ESMS::CellStore<MWWorld::RefData>&) ()
---Type <return> to continue, or q <return> to quit---
#10 0x084b5e2d in MWRender::RenderingManager::cellAdded(ESMS::CellStore<MWWorld::RefData>*) ()
#11 0x0858a4c6 in MWWorld::Scene::loadCell(ESMS::CellStore<MWWorld::RefData>*)
    ()
#12 0x0858a8c6 in MWWorld::Scene::changeCell(int, int, ESM::Position const&, bool) ()
#13 0x0858acb8 in MWWorld::Scene::changeToExteriorCell(ESM::Position const&) ()
#14 0x08549fd2 in MWWorld::World::changeToExteriorCell(ESM::Position const&) ()
#15 0x08522a58 in MWScript::Cell::OpCOC::execute(Interpreter::Runtime&) ()
#16 0x084b1ad5 in Interpreter::Interpreter::execute(unsigned int) ()
#17 0x084b23e8 in Interpreter::Interpreter::run(unsigned int const*, int, Interpreter::Context&) ()
#18 0x08504680 in MWGui::Console::acceptCommand(MyGUI::Edit*) ()
#19 0x08507166 in MyGUI::delegates::CMethodDelegate1<MWGui::Console, MyGUI::Edit*>::invoke(MyGUI::Edit*) ()
#20 0x0868ed7a in MyGUI::delegates::CDelegate1<MyGUI::Edit*>::operator()(MyGUI::Edit*) ()
#21 0x0868df71 in void MyGUI::EventPair<MyGUI::delegates::CDelegate1<MyGUI::Widget*>, MyGUI::delegates::CDelegate1<MyGUI::Edit*> >::operator()<MyGUI::Edit*>(MyGUI::Edit*) ()
#22 0x08687b0e in MyGUI::Edit::onKeyButtonPressed(MyGUI::KeyCode, unsigned int)
    ()
#23 0x086ce1b6 in MyGUI::InputManager::injectKeyPress(MyGUI::KeyCode, unsigned i---Type <return> to continue, or q <return> to quit---
nt) ()
#24 0x086caeb4 in MyGUI::Gui::injectKeyPress(MyGUI::KeyCode, unsigned int) ()
#25 0x0842edc1 in OEngine::GUI::EventInjector::event(Mangle::Input::Event::Type, int, void const*) ()
#26 0x084c6af2 in Mangle::Input::EventList::event(Mangle::Input::Event::Type, int, void const*) ()
#27 0x0842d58c in Mangle::Input::Driver::makeEvent(Mangle::Input::Event::Type, int, void const*) ()
#28 0x0842d6bd in Mangle::Input::OISListener::keyPressed(OIS::KeyEvent const&)
    ()
#29 0x007007b0 in OIS::LinuxKeyboard::_injectKeyDown(unsigned long, int) ()
   from /usr/lib/libOIS-1.3.0.so
#30 0x00700940 in OIS::LinuxKeyboard::capture() ()
   from /usr/lib/libOIS-1.3.0.so
#31 0x0842d3a6 in Mangle::Input::OISDriver::capture() ()
#32 0x084c7e20 in MWInput::InputImpl::frameRenderingQueued(Ogre::FrameEvent const&) ()
#33 0x0048cdd9 in Ogre::Root::_fireFrameRenderingQueued (this=0xb7cd6478, 
    evt=...)
    at /home/michael/Desktop/Code/ogre/ogre/OgreMain/src/OgreRoot.cpp:829
#34 0x0048e072 in Ogre::Root::_fireFrameRenderingQueued (this=0xb7cd6478)
    at /home/michael/Desktop/Code/ogre/ogre/OgreMain/src/OgreRoot.cpp:884
#35 0x0048e0c4 in Ogre::Root::_updateAllRenderTargets (this=0xb7cd6478)
---Type <return> to continue, or q <return> to quit---
    at /home/michael/Desktop/Code/ogre/ogre/OgreMain/src/OgreRoot.cpp:1376
#36 0x0048e1d8 in Ogre::Root::renderOneFrame (this=0xb7cd6478)
    at /home/michael/Desktop/Code/ogre/ogre/OgreMain/src/OgreRoot.cpp:966
#37 0x0048e235 in Ogre::Root::startRendering (this=0xb7cd6478)
    at /home/michael/Desktop/Code/ogre/ogre/OgreMain/src/OgreRoot.cpp:956
#38 0x0842e11f in OEngine::Render::OgreRenderer::start() ()
#39 0x085c09b3 in OMW::Engine::go() ()
#40 0x085b6ef6 in main ()
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Ogre crash introduced with rendering fix

Post by Zini »

That tells us at least that you have identified the right commit. The crash happened while building the static geometry, which was disabled prior to this commit. Right now I have no idea what could be causing it.
Locked