You are here

Building On OSX, Draw Call Culling

Hey Folks! Hope everyone had a good weekend. We did some local neighborhood clean-up volunteering, and yet another round of home improvement/move-in/cleaning. So pretty busy! We celebrated our hard work by getting tipsy on a bottle of Semillon, eating cheese, pickles, and bagels, and watching Arrival. Would do again :)

Today, I decided to bite the bullet and try to figure out building the iOS version on my MacBook. Up until now, Tiago has owned this process. (Indeed, his mobile expertise was a big part of why I contracted him!) He also graciously created a wiki for me a while back to show me how to build and test iOS locally on my iPad. I've sort of been dreading trying this, but with the project nearing launch, I'm going to need to know a bit more about how this works.

Overall, the process has been slow, and error-prone. But it has also been progressing steadily, which isn't always the case with Haxe stuff. I had a few minor updates on OSX to get out of the way, and then went through the process of installing Haxe and haxelibs (which is actually not too bad).

Getting the correct versions of libs is a bit trickier, as some need custom versions, recompiling, etc. But I think I got most of that squared away, too.

Getting XCode to play nice with Haxe is voodoo from my point of view. If it weren't for Tiago's wiki, I'd be lost. So I was fortunately able to stumble around the foreign IDE with his map in hand, and am now at the point where I can start the build process.

Unfortunately, that's where my progress ends for the day. I seem to be running into a compile error in the generated C++ code that tries to cast an item handle into an int, but no valid conversion exists. My first instinct was that this might be a lib mismatch. But my attempts to realign libs hasn't helped yet. I'll try again tomorrow.

Meanwhile, Tiago is refactoring a bunch of the mobile project to use fewer draw calls. Our operating assumption is that the random crashes I see on iPad 3 are due to excessive draw calls. And since they only occur on screens with 3+ calls, that seems like a sound assumption.

He's making progress, but there are several UI screens that each need their own solution to reduce draw calls. So he has a bit further to go before we know more.

Not very glamorous, as you can see. But necessary work, all the same!


ra1's picture

Before you go rewriting the graphics calls, why don't you "disable" one/some of them (even if it breaks functionality), make a build, and see if the program still crashes.

(Unless you want to do this anyways, for performance reasons).

dcfedor's picture

Good point. We were assuming the correlation between draw calls and crash frequency meant something, but it could just be coincidence. I think Tiago said our message window was a draw call, and that'd be easy to cull for a test. Thanks!

Dan Fedor - Founder, Blue Bottle Games