\o/
That works ! it uses more than 2.4Gb of memory but it finish with the
KDTree.
Sorry for the "panic", it not an OSG bug.
Thanks for your help Ralf and Robert.
Regards,
Vincent.
2009/6/8 Vincent Bourdier <[email protected]>
>
> Hi Ralf,
>
> I'm making a new compil with the /3GB and the /LARGEADRESSAWARE flag ...
> but do you think I have to compile osg with the same flag ? the crash is in
> readNodefile ...
>
> Thanks for your help.
>
> Regards,
> Vincent.
>
> 2009/6/8 Ralph Kern <[email protected]>
>
>> 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
>>
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org