Start a new topic

WTArchitectView start:completion: pegs the CPU

WTArchitectView start:completion: pegs the CPU


Hey Guys,

I've believe I've found a bug with WTArchitectView's start:completion: method. The forums don't tend to format code too nicely, so I've created a gist with code to reproduce at https://gist.github.com/cdun/ee66969d4a6eb2ed50832a04bc1cee6c

My simple test project is set up in xcode with the view controller displaying AR at the root of a navigation controller. This view controller then has a simple push/pop segue to another UIViewController (no subclass, just dragged into the storyboard and created a segue). Code provided in the linked gist is called within viewDidAppear.

In the gist above, the view controller (with WTArchitectView) is registered as the delegate - once an architect world loads I'm using the architectView:didFinishLoadArchitectWorldNavigation: method to reference what was loaded due to the fact our use case involves loading more than one architect world in the lifetime of the SDK.

On the first load, all is well. WTArchitectView loads the architect world included in the bundle - the test world doesn't register any trackables, and the CPU sits at ~20%.

If I push a view controller on to the stack (stopping the architectView in viewWillDisappear), and then pop it (restarting in viewDidAppear), then the SDK suddenly pegs the CPU @ ~100%. Please note that the statement in the completion block isn't evaluted the second time, and is essentially a no-op. I'm currently at home, so don't have detailed debug from here, but from memory the thread that's using high CPU is calilng out to something with a C++ namespace of "aramis".

Am I missing something obvious? Happy to expand on the code/explanations provided or even create a sample project on Github if it helps!

Thanks

Chris

Just to add to the above, the method blocking is "aramis::Musketlr2dService::processFrame()" - so looks like it's something to do with image tracking

Hi Chris,
Might it be that you have multiple WTArchitectViews running at the same time?

Maybe you can share the complete project on e.g. GitHub so that I can have a look at it if you still encounter the same behaviour.

 

Best regards,

Andreas
Login or Signup to post a comment