CPU-bottlenecking in Batman: AC (C2D to i7)

Termie

Diamond Member
Aug 17, 2005
7,949
48
91
www.techbuyersguru.com
Just thought I'd share my findings on CPU-bottlenecking in the Batman: AC built-in benchmark. I've been playing the game on my HTPC, which previously had an e8400@3.3. The performance was pretty bad, and in the built in benchmark, I would get between 26 and 29 fps on average, moving from 720MHz on my GTX460 to 850GHz. I had a hunch that my CPU was holding me back.

Take a look at the numbers here, and keep in mind that the only thing that has changed is my CPU (i7-860@3.0) and motherboard:

MIN MAX AVG
7 47 29 w/e8400
6 60 44 w/i7-860 (edit: HT was shut off b/c I figured it wouldn't mater...)

That's a 50% improvement. I was running at 1080p, DX11, High Quality, Normal Tess and Phsx.

This goes to show that even games with intense graphics settings that are not considered CPU hogs (like BF3) can be significantly held back by a dual-core.


EDIT: NEW DATA
fpscapture.png


See discussion below in post #8.
 
Last edited:

inf64

Diamond Member
Mar 11, 2011
3,884
4,692
136
Well of course. You went from DUAL core chip to a next gen. QUAD core/8 thread chip.
Glad you feel the difference :).
 

borisvodofsky

Diamond Member
Feb 12, 2010
3,606
0
0
Well of course. You went from DUAL core chip to a next gen. QUAD core/8 thread chip.
Glad you feel the difference :).

Um.... the difference you've witnessed has nothing to do with having 4 cores. because they're likely actively being parked anyway.

the difference is because there is a good ipc improvement from the i7 860, and better memory subsystem.

That said, you can disable core parking to improve your minimum by another 5-10%
 

nenforcer

Golden Member
Aug 26, 2008
1,780
21
81
I agree with this 100%. I upgraded to a E8400 (Xeon 3110) last fall along with a GTX 460 768MB and have been playing the game at the same settings (only DX9) and on occasion do feel the GPU isn't reaching its potential.

I will probably skip an upgrade to a Core 2 Quad at this point since they are way overpriced for what you get.
 

Blastman

Golden Member
Oct 21, 1999
1,758
0
76
Take a look at the numbers here, and keep in mind that the only thing that has changed is my CPU (i7-860@3.0) and motherboard:

MIN MAX AVG
7 47 29 w/e8400
6 60 44 w/i7-860

That's a 50% improvement. I was running at 1080p, DX11, High Quality, Normal Tess and Phsx.
It would be interesting to see how that game runs with only 2 cores on the i7-860 and hyperthreading turned off.
 

boxleitnerb

Platinum Member
Nov 1, 2011
2,605
6
81
Maybe part is due to the additional threads, but a Core i7 Lynnfield has about 30% higher ICP than a Wolfdale, so a good deal should come from there.
 

Termie

Diamond Member
Aug 17, 2005
7,949
48
91
www.techbuyersguru.com
Ask and you shall receive. I have some really interesting data for you here. I think you may be pretty surprised:

fpscapture.png


Right off the bat, you can see that the IPC improvement is 20% (35 vs. 29). That's nice, but that's not the key here, as some people have presumed. In fact, this game is heavily threaded, and with 2 cores and HT, the game really opens up - HT makes a bigger difference than IPC. Two cores w/HT @3.4 is just as effective as 4 real cores @3.0. And then when we get to use the whole CPU, wow, the minimums really shoot up. Even four cores on their own aren't enough to produce that.


Here's a screen capture of the run with 4 cores/8 threads. Obviously, Batman is taking advantage of more than 4 threads here:

corecapture.jpg
 
Last edited:

boxleitnerb

Platinum Member
Nov 1, 2011
2,605
6
81
Very nice, thanks. You could have disabled vsync and the engine fps limit, though - then the results would be more accurate. The i7 can do more than those 60fps max.
 

Termie

Diamond Member
Aug 17, 2005
7,949
48
91
www.techbuyersguru.com
Very nice, thanks. You could have disabled vsync and the engine fps limit, though - then the results would be more accurate. The i7 can do more than those 60fps max.

That's a good point - the game may have a built-in cap, because I don't recall enabling vsync. When I have a chance, I'll see if there's an obvious way to disable that and re-run at least the last benchmark. I doubt it would affect the outcome much - the game only hit 60fps during a few very brief transition moments. My GPU can't hold 60fps at these settings when actually presented with a full-screen rendering load.
 

boxleitnerb

Platinum Member
Nov 1, 2011
2,605
6
81
It's here in the "DefaultEngine.ini" in
Steam\steamapps\common\batman2\BmGame\Config

[Engine.GameEngine]
bSmoothFrameRate=FALSE
MinSmoothedFrameRate=24
MaxSmoothedFrameRate=999
 

nyker96

Diamond Member
Apr 19, 2005
5,630
2
81
I think the easy way to check if you are cpu bottlenecked is to drop resolution to lowest 1024x768, with lowest graphics settings. If you are getting exactly the same numbers as higher graphics settings then you know your cpu is the problem. however, if you start to get much higher fps once graphics setting is dropped, well I'd say you are graphics card bottlenecked.
 

boxleitnerb

Platinum Member
Nov 1, 2011
2,605
6
81
Yes and no.
The general idea is sound, but keep in mind that the aspect ratio influences CPU load. A wider FOV means more objects that the CPU has to compute and more data to prepare for the GPU. Also, graphics settings may also influence CPU load. Best just to reduce resolution but keep the aspect ratio constant.
 

AtenRa

Lifer
Feb 2, 2009
14,003
3,362
136
Why bother with lower resolutions when you can OC the CPU (or even enable HT) and check if you will gain any fps in the resolution and IQ settings you actually play the game ??

If you dont get any more fps with a CPU OC then you are GPU limited, it is simple as that ;)
 

Termie

Diamond Member
Aug 17, 2005
7,949
48
91
www.techbuyersguru.com
Why bother with lower resolutions when you can OC the CPU (or even enable HT) and check if you will gain any fps in the resolution and IQ settings you actually play the game ??

If you dont get any more fps with a CPU OC then you are GPU limited, it is simple as that ;)

Exactly. Testing settings that no one will ever use is a very rough approach to testing for CPU limitations. In my case, I actually could test two different CPUs (as you have AtenRa), but another very simple approach, if you can't or don't want to OC your CPU, is to underclock it. Obviously, if performance goes down, you were CPU bottlenecked.

Interestingly, I had originally done a whole set of benchmarks on my e8400 at various GPU overclocks, and I was able to get a few FPS increase, which might suggest I was not CPU-limited. But in fact, whatever benefit I was getting from the GPU was on the margin, in the few instances where the CPU did not matter, because clearly, switching CPUs allowed my GPU to reach its much higher potential.
 

Termie

Diamond Member
Aug 17, 2005
7,949
48
91
www.techbuyersguru.com
It's here in the "DefaultEngine.ini" in
Steam\steamapps\common\batman2\BmGame\Config

[Engine.GameEngine]
bSmoothFrameRate=FALSE
MinSmoothedFrameRate=24
MaxSmoothedFrameRate=999

Thanks for the tip. Using those settings, my max went up to 68, the avg stayed the same, but the minimum dropped down to 4 (from 14). So I'm going to return the settings to default, as they seem to actually help do what they're designed to do.