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

Reply via email to