Hi Vincent, the problem with the /3GB option is that you also have to setup the /LARGEADRESSAWARE linker flag and check pointer arithmetics in every exe/dll of your app. There are some possible pitfalls on pointer arithmetic because ptrdiff_t is signed 32 bit on Win32.
regards Ralph Vincent Bourdier schrieb: > Hi Ralf, > > I'm already using the /3GB option, that's why I don't understand the > crash ... > > Thanks. > > Regards, > Vincent. > > 2009/6/8 Ralph Kern <[email protected] > <mailto:[email protected]>> > > 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]> > > <mailto:[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]> > > <mailto:[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]> > > > <mailto:[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]> > > > <mailto:[email protected] > <mailto:[email protected]>> > > > > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > > > > _______________________________________________ > > osg-users mailing list > > > [email protected] > <mailto:[email protected]> > > > <mailto:[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

