BrownBot Logo BrownBot Head

60 FPS Nirvana…. finally

5:16 am Filed under: Dirchie Kart,XBLIG,XNA

Finally overcame my performance bottle necks this afternoon, I always suspected I wasn’t pushing the Xbox’s GPU that hard with my poly count or texture usage, today I got 4 player split screen running at a solid 60 frames per second. I even did some stress testing an added 10 times the polys (32,000 faces) to the level decoration on the Egypt map and it still ran a 60 FPS.

I adding 3 avatar players dropped 5 FPS, so I think that must be about the limit, still even half that amount is more extra polys than I’ll ever have time to model up in the foreseeable future.

Poos-4

The solution proved to be a combination of GPU batch count and CPU load, which as I found out is directly related. Using the Slimtune profiler I identified a few interesting high frequency calls that quickly yielded considerable decreases in CPU load.

Interestingly setting the pitch variable in an XACT cue was quite an expensive operation every frame so I cut them back to every 10 frames for the engine sounds on the karts.

Another expensive call turned out to be nulling values in the large collision detection arrays, which I didn’t think would cost anything, maybe it was the loops themselves but leaving the references alone (and potentially some garbage in memory) and just resetting the counter was a lot faster.

Cutting down the batch count was mostly done by implementing mesh instancing, which worked really well in my game seeing there’s a reasonably high count the same objects.

A fair bit of work in the end but this extra performance will definitely give me plenty of breathing room to finish it off properly.

3 Comments »

  1. Is there any reason why the left and right triggers are around the wrong way?

    Comment by Euan — September 6, 2011 @ 7:13 pm

  2. Didn’t think of that, good pickup, I’m going to re-do those messages as speech bubbles so I’ll correct it then

    Comment by Pete — September 6, 2011 @ 10:02 pm

  3. Gratz! 🙂

    Comment by FyreWolfe — September 7, 2011 @ 4:27 pm

RSS feed for comments on this post. TrackBack URI

Leave a comment

You must be logged in to post a comment.

Powered by WordPress