Tip:
Highlight text to annotate it
X
“Whats up?” “Yo”
“How’s it going?”
“Chronicling optimisations.”
“Oh God yea, yea it’s fun – having a great time.”
RYAN WELLS - PRODUCER “This performance initiative is surely a team effort – every last person is currently working on something related to performance. "
No question, engineers have the bulk of the work and are going to be the bulk of the impact but the designers, artists, animators, audio folks… are also helping out.”
“We hope to get the latest tools with Scaleform 4.3 working soon so we can get the batch profiling and the wireframes and all that stuff that we had previously, and then some, to help us figure out exactly
how many primitives we’re drawing, how many quads are being drawn and better ways to reduce that so once we can get the overdraw working that’ll be really good so I’ll be working on that today.”
AMIT PATEL – UI LEAD ENGINEER
“Hi, my name’s Amit Patel – I’m the UI Lead for PlanetSide 2. When I’m not performing spontaneous surgeries or looking for White Castle I am here optimising.”
“We’re stuffing our faces with ribs, meat, bbq and Amit’s got a veggie burger.”
To get 60 FPS (Frame per second) you’ve got to get 16.6 milliseconds processing per frame at least. Just talking from the UI we’ve been spiking up to 4 or 5 milliseconds once in a while. We really want to keep that number to a minimum.”
“As you can tell we’re having a fantastic time here – look at this, check out this wonderful spike: its beautiful.”
“Let me zoom in on this”
“Everything’s going well – no problem,, no problem, BAM 8.85 milliseconds – for no reason, except that it thinks it needs to garbage collect when I don’t think it needs to.”
“Things that we do to minimise those values are we reduce the number of objects we see on the screen…
“Here we have a “before” and on the right we have an “after”. We’re primarily interested in this lower right region of the vitals – (on the left) every tick is a different texture,
you’ll notice that it has it’s own quad being drawn versus something that’s very simple – the right side, each entire bar is a texture instead of every tick.”
“We noticed that when we have tween collisions, array keeps building on itself and keeps getting some ridiculous number that’s why we’re getting this garbage collecting at some point and that’s why we’re seeing these 8-10 millisecond spikes.”
“Some of these numbers like the HUD indicator or the minimap numbers, you’ll see them spike periodically up to 1-2 milliseconds, even up to 3 milliseconds – just that. "
That’s not even counting the render cost and advanced costs of Scaleform.”
“I think what we’re going to do, if Jamie approves – I want to use the Process Queue for minimap and HUD indicators and encapsulate one indicator in an object so we can push them in a queue "
and just pop them off and process them until our frame limit is reached so it will never directly spike in those systems.
We’ll just distribute processing out, so for behind a few frames with state management it’s not a huge deal. So I’m going to work with Chris on that”.
“Now our next step is to take those spikes and crush them down and make this graph look more organic and in order to do that what you have to do is create a “cap” on a per-frame basis on a per-system basis, for example
– I’m not going to process more than 200 microseconds for the HUD indicator system no matter what. So once we implement that cap then we’ll be able to avoid spikes altogether”.
“So what we have right now – we’ve throttled it to evaluating the client requirements around 3 times a second, 3 to 4 times, and while that helps us a lot by a millisecond or two
– it will still spike once in a while so we just want to get rid of that completely.”
“I’d say we’re a good third of the way through what we really want to do. This first third has gone extremely well – we’re really happy with some of the stuff we’ve got.
" We’ve still got a lot of bugs to fix and a lot of issues to resolve but it’s really coming together and we’re happy with what we’ve got "
and we’re working on metrics to figure out exactly how well we’ve done, but initial assessments are very good.”