hi Vincent, Win32 has a 2GB limit on virtual adress space for any single process. Microsoft decided for some reason to half down the available 4GB adress space in 32 Bit.
There's some obscure workaround to up this limit to ~3GB, but it is only working on some of the MS operationg systems. See the discussion on http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx Better way now is to use a 64 Bit environment and a 64 bit build. regards Ralph Vincent Bourdier schrieb: > Update : this sound like a memory problem : when my MV is around 2.0Go, > the application crash. I'm not familiar with windows virtual Memory, so > i'm not sure of how to increase it. > I've trid to set the pagefile to 5Go and the RAM (with a new barett) to > 4.0Go (3.2Go for win XP 32bits) but the crash is still the same ... > > Any idea ? > > Does the KDTree builder eats a lot of MV ? the .ive file (without > texture) is about 450Mo ... so this is a very big model ... > > Thanks for help. > > Regards, > Vincent. > > 2009/6/8 Vincent Bourdier > <[email protected] > <mailto:[email protected]>> > > Hi Robert, > > ok for KDTree, but the question is : Why an osg2.6.1 file.ive opened > by osg2.8.1 using KDtree make a crash ? > Sorry I cannot give the file, this is confidential data I'm not > allowed to give you. > > Crash : Unhandled exception at 0x7c812afb in Launcherd.exe: > Microsoft C++ exception: std::bad_alloc at memory location 0x00d9ec28.. > > > This is the stack trace : > > kernel32.dll!7c812afb() > [Frames below may be incorrect and/or missing, no symbols > loaded for kernel32.dll] > kernel32.dll!7c812afb() > > osg55-osgd.dll!std::_Allocate<osg::KdTree::KdNode>(unsigned int > _Count=144230, osg::KdTree::KdNode * __formal=0x00000000) Line 43 + > 0xc bytes C++ > > osg55-osgd.dll!std::allocator<osg::KdTree::KdNode>::allocate(unsigned > int _Count=144230) Line 145 + 0xb bytes C++ > > > osg55-osgd.dll!std::vector<osg::KdTree::KdNode,std::allocator<osg::KdTree::KdNode> > >::reserve(unsigned int _Count=144230) Line 607 + 0xf bytes C++ > osg55-osgd.dll!BuildKdTree::build(osg::KdTree::BuildOptions & > options={...}, osg::Geometry * geometry=0x35097a68) Line 124 C++ > osg55-osgd.dll!osg::KdTree::build(osg::KdTree::BuildOptions & > options={...}, osg::Geometry * geometry=0x35097a68) Line 764 + 0x10 > bytes C++ > osg55-osgd.dll!osg::KdTreeBuilder::apply(osg::Geode & > geode={...}) Line 817 + 0x25 bytes C++ > osg55-osgd.dll!osg::Geode::accept(osg::NodeVisitor & nv={...}) > Line 39 + 0x41 bytes C++ > osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & > nv={...}) Line 62 + 0x25 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & > node={...}) Line 191 + 0x1c bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...}) > Line 72 C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & > node={...}) Line 86 + 0x13 bytes C++ > osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) > Line 38 + 0x41 bytes C++ > osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & > nv={...}) Line 62 + 0x25 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & > node={...}) Line 191 + 0x1c bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...}) > Line 72 C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & > node={...}) Line 86 + 0x13 bytes C++ > osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) > Line 38 + 0x41 bytes C++ > osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & > nv={...}) Line 62 + 0x25 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & > node={...}) Line 191 + 0x1c bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...}) > Line 72 C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & > node={...}) Line 86 + 0x13 bytes C++ > osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) > Line 38 + 0x41 bytes C++ > osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & > nv={...}) Line 62 + 0x25 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & > node={...}) Line 191 + 0x1c bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...}) > Line 72 C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & > node={...}) Line 86 + 0x13 bytes C++ > osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) > Line 38 + 0x41 bytes C++ > osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & > nv={...}) Line 62 + 0x25 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & > node={...}) Line 191 + 0x1c bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...}) > Line 72 C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & > node={...}) Line 86 + 0x13 bytes C++ > osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) > Line 38 + 0x41 bytes C++ > osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & > nv={...}) Line 62 + 0x25 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & > node={...}) Line 191 + 0x1c bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...}) > Line 72 C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & > node={...}) Line 86 + 0x13 bytes C++ > osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) > Line 38 + 0x41 bytes C++ > osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & > nv={...}) Line 62 + 0x25 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & > node={...}) Line 191 + 0x1c bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...}) > Line 72 C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & > node={...}) Line 86 + 0x13 bytes C++ > osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) > Line 38 + 0x41 bytes C++ > osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & > nv={...}) Line 62 + 0x25 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & > node={...}) Line 191 + 0x1c bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...}) > Line 72 C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & > node={...}) Line 86 + 0x13 bytes C++ > osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) > Line 38 + 0x41 bytes C++ > osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & > nv={...}) Line 62 + 0x25 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & > node={...}) Line 191 + 0x1c bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...}) > Line 72 C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & > node={...}) Line 86 + 0x13 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Transform & > node={...}) Line 121 + 0x13 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::MatrixTransform & > node={...}) Line 136 + 0x13 bytes C++ > osg55-osgd.dll!osg::MatrixTransform::accept(osg::NodeVisitor & > nv={...}) Line 37 + 0x41 bytes C++ > osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & > nv={...}) Line 62 + 0x25 bytes C++ > osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & > node={...}) Line 191 + 0x1c bytes C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...}) > Line 72 C++ > osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & > node={...}) Line 86 + 0x13 bytes C++ > osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) > Line 38 + 0x41 bytes C++ > > > osg55-osgDBd.dll!osgDB::Registry::_buildKdTreeIfRequired(osgDB::ReaderWriter::ReadResult > & result={...}, const osgDB::ReaderWriter::Options * > options=0x00000000) Line 342 + 0x23 bytes C++ > osg55-osgDBd.dll!osgDB::Registry::readNode(const > std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & fileName="Z:/a350.ive", const osgDB::ReaderWriter::Options * > options=0x00000000, bool buildKdTreeIfRequired=true) Line 241 C++ > osg55-osgDBd.dll!osgDB::readNodeFile(const > std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & filename="Z:/a350.ive", const osgDB::ReaderWriter::Options * > options=0x00000000) Line 69 + 0x1f bytes C++ > 3DEMd.dll!osgDB::readNodeFile(const > std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & filename="Z:/a350.ive") Line 106 + 0x1e bytes C++ > ... > > > I'll try to make a new ive file using directly osg2.8.1 to see if > the problem is an osg version problem or something else. > > Thanks, > > Regards, > Vincent. > > 2009/6/5 Robert Osfield > <[email protected] > <mailto:[email protected]>> > > HI Vincent, > > What you are doing should be OK, but I can't see that anyone can > help > point to what the problem without you providing at least a stack > trace, and ideally a test model to look at. > > Robert. > > On Fri, Jun 5, 2009 at 5:06 PM, Vincent > Bourdier<[email protected] > <mailto:[email protected]>> > wrote: > > Hi all, > > > > I've got a crash on loading an ive file made by osgExp and > opened/saved by > > osg 2.6.1 next, because of the Kd Tree built. > > > > I use : > > > > > > > > osgDB::Registry::instance()->setBuildKdTreesHint(osgDB::ReaderWriter::Options::BUILD_KDTREES); > > > > and I load the models after that. > > > > If I remove his line, the model load correctly. > > > > I use osg 2.8.1 now, and I cannot use this model ... do I need > to open/save > > the file exported by 3dsmax with osg 2.8.1 ? > > Do I need to set the KDTree to do that ? > > Do I set the KDTree correctly ? > > > > Thanks for your help, any suggestion would very appreciated. > > > > Regards, > > Vincent. > > > > _______________________________________________ > > osg-users mailing list > > [email protected] > <mailto:[email protected]> > > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > _______________________________________________ > osg-users mailing list > [email protected] > <mailto:[email protected]> > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

