liu.yan Posted January 18, 2017 Posted January 18, 2017 Found a problem recently: if Unigine::World::get()->getIntersection(P0, P1, vecObjects) was called, vecObjects will the program collapse. This problem has never happen on PC, but on almost every kind laptops(Alienware don’t have this problem). We also found if we make the variable global or static, that means avoid the calling of its destructor, would be all right. Is that a problem? or any elegant way can we do to solve this?
silent Posted January 18, 2017 Posted January 18, 2017 liu.yan, Could you please provide a small test scene and reproduction steps?Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
liu.yan Posted January 18, 2017 Author Posted January 18, 2017 You can try this: 1 Operation System: windows 10 64 bit 2 Use laptop. 3 Call World::get()->getNodes(cNodesVec), make sure the parameter cNodesVec is a local variable. 4 Compile as Release/64 There is a great chance that the program will collapse when entering Unigine::Vector’s destructor.
silent Posted January 18, 2017 Posted January 18, 2017 liu.yan This issue is already fixed in our internal builds. Fix will be available together with 2.4 SDK update. Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
ded Posted January 18, 2017 Posted January 18, 2017 Hi liu.yan, As a temporary workaround, you can try to call reserve() on Vector before passing it to the engine. It's hard to say how much memory you should reserve in general, but it has to be "enough" for each case. Sorry for the inconvenience caused.
Recommended Posts