Batman: Arkham City PC Performance Analysis

Okay, this is a game for which we really wanted to write a performance analysis. Given the fact that Rocksteady was preparing a patch for it, we decided to hold off and see whether the update would introduce any performance boost to the DX9 path. Unfortunately though, Batman: Arkham City is an un-optimized mess when it comes to its PhysX implementation. In other words, Rocksteady relied on PC’s additional raw power to overcome any performance issues. This is not shocking at all as Rocksteady used an old version of the PhysX SDK. But let’s start with our analysis, shall we?
As always, we used an overclocked Q9650 at 4.2Ghz, 4GB of RAM and a GTX295 with the latest ForceWare drivers and Windows 7 64-Bit. We’ve criticized for using such an old system but let us tell you that this setup gives a perfect idea of how a game scales to both SLI and quad-cores and since Batman: Arkham City supports GPU PhysX, it’ll be interesting to see the performance differences between with, and without SLI when the PhysX effects are enabled.
To get a first taste of what Batman: Arkham City has to offer, we benchmarked it with SLI enabled at DX9. In order to have an apples-to-apples comparison, we used a different resolution than our previous tests. Therefore, at 1600×900, Batman: Arkham City ran great, although there were places were our framerate was hovering around 60fps. This was pretty evident to the outdoor, final environment of the benchmark and hints to a possible CPU limitation. And as we can see, the CPU usage is great as the game scales wonderfully on quad-cores. However, the game is not optimized at all. When we tried to run the game with a simulated dual-core system, we noticed a slight decrease (around 3-4fps). What’s more interesting is that our framerate was decreased to 58fps in the final outdoor scene. If the game was indeed CPU limited, we should normally see a bigger decrease. There is no question that the game is fully playable (even in 1080p as the framerate was almost the same) but this clearly shows that although Batman: Arkham City scales well with quad-cores, it is not taking advantage of them as its performance is exactly the same with the one of a similar, dual-core system. In other words, you will surely need an Intel iX processor to avoid any possible CPU limitation.
As we all know, Rocksteady added some hardware accelerated PhysX effects to the PC version and let us tell you that they didn’t optimize those effects at all. Let’s forget for a second that Batman: Arkham City is not using the 3.0 version of the PhysX SDK. What really puzzled us was the low GPU utilization that we noticed when we enabled those PhysX effects. So, when we first run the game (with GPU PhysX and SLI enabled), we noticed major slowdowns. And get this; we were averaging around 33-37fps with really low usage in both of our GPU cores. Naturally, we decided to disable SLI and dedicate one card to the PhysX effects. Our average framerate was increased to 42fps but there were some scenes in which the GPU usage was still really low. The ‘Freeze’ scene – in particular – was sluggish, with low CPU and GPU usage. This specific scene shows how un-optimized are the PhysX effects that Rocksteady implemented to the game.

What’s also really funny is that there isn’t anything particular that could justify this low GPU usage. Our dedicated PhysX card was used – in the ‘Freeze’ scene – at around 30% whereas the GPU that handled the game’s graphics was used at 40%. Let’s say that we were CPU limited and that’s why there was such a tremendous decrease in that scene. So, why does the game run with 90fps in that same scene without those PhysX effects? The answer is simple; the PhysX effects are as un-optimized as they can get. And that’s precisely why Rocksteady should avoid the 2.8.4 SDK version and concentrate on the 3.0 SDK that – among other things – offers better multi-thread support.
All in all, Batman: Arkham City is an un-optimized mess when it comes to all those exclusive PC features. As the game does not support DX10, there is a high probability that the average framerate could be lower when tessellation is enabled in DX11 (as we’ve heard that Rocksteady went nuts with tessellation on the game’s walls bricks). Our humble opinion is that Rocksteady decided to include those features to justify the delay of the PC version and did not optimize them.
There is no doubt that as a game, Batman: Arkham City is great and – at times – looks lovely. However, the addition PC features were not optimized some really low-res textures can be easily spotted. We really hoped that Rocksteady would offer something better, but we were really disappointed with the end result (from a technical point of view). And for crying out loud, our dear devs, please stop using SDK versions of PhysX that are prior to 3.0. Let’s move on to the new one as it’s about bloody time.