Parallelism And Graphics On Next-Gen Consoles
Chris: Excellent, okay. A couple of times now you’ve talked about the scalability of Frostbite when it comes to threading in multi-core CPUs. Both of these next-gen consoles are heavily threaded, but the cores themselves are lighter than what we’re typically used to on the PC side. What are you doing to utilize those available x86 resources and how does that compare to the past development work that you’ve done?
Johan: We've spent a lot of time...we've been working on the next-gen consoles for around two years, and this last year we've sort of been focusing a lot on just bringing up everything and optimizing it also. It's been a bit of a challenge, the performance on the next-gen CPUs. But as our engine was quite parallel, we parallelized it even further. That was sort of a must for us to run with 64 players at 60 FPS on PS4 and Xbox One. There was a lot of work to parallelize everything. So now we've got around 90 to 95% of the CPU utilization and have some screen shots I can show you and it looks quite cool when you’ve got that type of utilization in multi-player.
Chris: Yeah.
Johan: So that's pretty cool, and the difference before was that, well, the PS3 was the bottleneck back in the day. Even though the Cell architecture was really powerful, just the work it took to move things off the SPU...and we went through, we spent a lot of time moving things to the SPU and saw some really great performance was there, but we also had to compensate a lot on GPU performance by moving things to the SPU. This took us a lot of time, and we ended up with quite good performance, but that sort of architecture was not very balanced back then.
Now, with the new generation consoles, the architecture is a lot more balanced and we got quite good performance from the get-go out of these CPUs. Then, we're able to spend a lot more time really fully utilizing them, as in parallelizing, and also doing other types of optimization on the CPU. We don’t have to optimize away every load-hit-store or cache miss because these are out-of-order processors so they handle more code in more of a general manner, which was really good. Although, they run at quite low clock frequencies, so it's still been a a challenge to make sure that we utilize all of them and that we essentially do now.
Going forward, I think we’ll start moving more code over to compute on the GPUs. Think like doing cloth simulation or parts of your rendering, you can do it in a little bit less brute-force way on the CPU and instead have the GPU handle that in a very efficient manner. So, that will be a bit of a challenge for us going forward to do that, but that's sort of the trajectory we're on more and more.
Chris: Okay, excellent. Simultaneously we’re dealing with these graphics engines that are not as capable really as the high-end PC hardware. How close can you get to the PC experience at 1080p quality-wise on a console, and if you have to compromise what's the first thing to go?
Johan: Yeah, this is sort of a decision for each game team going forward that we work with, but before, getting to having 64 players and getting to 60 FPS was the most important thing because we wanted to bring this PC game experience that you have. And if you play Battlefield I think you'll agree that the actual game experience of playing on the 64-player server and everyone is interacting, I mean, and having a great frame rate is actually a significant difference from what we had on the current generation of consoles with only 24 players. This sort of enables more types of gameplay, and that was the most important thing for us. That sort of set the bar that we need to get there, and we did get there. Sure we did still have to do a little bit of a compromise on the solution. We're not running at the full native 1080p; we’re running a little bit lower resolution than that. But I think it was well worth those tradeoffs in order to make sure that we can actually have the full sort of PC game experience overall being on there. And you're playing the games in a little bit different way. You’re playing with the controller on a TV; you're not playing on a PC with a monitor. And it's very low-latency in that way where it's even more twitchy for example on a PC or a monitor that's even more sharp.
Chris: Right.
Johan: I think it worked out quite well for us, but it's sort of a decision for each game going forward also like what makes more sense.