I run a game (rigsofrods) with ogre 1.9 under linux (Arch) with onboard intel graphics (i915 module) and it segfaults when trying to load some vehicles. The segfault happens when it loads some .dds. The crash can be fixed by:
1. Removing that .dds (makes the vehicle not showing correctly)
2. Disable 3d acceleration (makes the game unplayable)
When i run the game with ogre 1.8.1 everything works ok with no crashes at all!
So i'm trying to find where is the problem. From the backtraces the problem seems to be with memory allocating. I tried building ogre 1.9 with standard memory allocator and nedmalloc but the crash remains.
Here are extensive gdb and valgrind backtraces:
Code: Select all
==23659== Process terminating with default action of signal 11 (SIGSEGV): dumping core ==23659== General Protection Fault ==23659== at 0x5295710: tmalloc_large (malloc.c.h:4239) ==23659== by 0x5295710: mspace_malloc (malloc.c.h:5124) ==23659== by 0x5298859: nedalloc::nedpmalloc(nedalloc::nedpool_t*, unsigned long) (nedmalloc.c:785) ==23659== by 0x102029C3: allocateBytes (OgreMemoryNedPooling.h:73) ==23659== by 0x102029C3: operator new (OgreMemoryAllocatedObject.h:75) ==23659== by 0x102029C3: Ogre::GLTexture::_createSurfaceList() (OgreGLTexture.cpp:409) ==23659== by 0x10203554: Ogre::GLTexture::createInternalResourcesImpl() (OgreGLTexture.cpp:261) ==23659== by 0x541479C: Ogre::Texture::createInternalResources() (OgreTexture.cpp:343) ==23659== by 0x54152E9: Ogre::Texture::_loadImages(std::vector<Ogre::Image const*, Ogre::STLAllocator<Ogre::Image const*, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const&) (OgreTexture.cpp:227) ==23659== by 0x10202777: Ogre::GLTexture::loadImpl() (OgreGLTexture.cpp:370) ==23659== by 0x5336115: Ogre::Resource::load(bool) (OgreResource.cpp:237) ==23659== by 0x541A8EE: Ogre::TextureUnitState::ensureLoaded(unsigned long) const (OgreTextureUnitState.cpp:1209) ==23659== by 0x541AC9F: Ogre::TextureUnitState::_load() (OgreTextureUnitState.cpp:1093) ==23659== by 0x52E18BB: Ogre::Pass::_load() (OgrePass.cpp:1335) ==23659== by 0x540FA9B: Ogre::Technique::_load() (OgreTechnique.cpp:662)
https://www.dropbox.com/s/ssz988zdbmcdr ... b.txt?dl=1
https://www.dropbox.com/s/8skj78xzf63bl ... b.txt?dl=1
https://www.dropbox.com/s/146vvtdy6lz4t ... grind?dl=1
Any help is appreciated and sorry for bad English!