FPS Benchmarking; An Update
ScardyBob
ScardyBob Join Date: 2009-11-25 Member: 69528Forum Admins, Forum Moderators, NS2 Playtester, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow
Way back yonder, I did some benchmarking to gauge how different options affected my framerate. Both the game and my system have changed since then so I thought it useful to redo the analysis. The results aren't necessarily surprising, but its good to get numbers regarding it. Results below:
SHORT ANSWER
Basically, I was able to get large increases in FPS via some basic changes. The biggest benefit was from disabling or minimizing all of the options, followed by reducing the resolution, turning off ambient occlusion, and shadows. The only surprising result was that turning the particle quality down seemed to reduce my FPS.
LONG ANSWER
I wanted to be a bit more rigorous with my updated benchmarking so I combined consistent, real world gaming experience (e.g. using a demo of an actual match), hypothesis testing (e.g. t-test), and a measure of the effect size (e.g. Hedges' g). Relevant background info is provided below.
System Specs:
CPU: Intel i7 2600k (OCd to 4.7GHz)
GPU: AMD Radeon HD6950
RAM: 16GB
Base Options:
- Resolution = 1920x1080
- Display Mode = Fullscreen Windowed
- Wait for Vertical Sync = Triple Buffered
- Texture Quality = High
- Particle Quality = High
- Infestation = Rich
- Anti-Aliasing = On
- Bloom = On
- Atmospherics = On
- Anisotropic Filtering = On
- Ambient Occlusion = High
- Shadows = On
- Texture Streaming = Off
- Multicore Rendering = On
Benchmark Setup:
Roughly 5 min demo benchmarked using FRAPs with each option changed one at a time.
t-test results:
Null Hypothesis = No difference between the base and changed benchmark's fps's
Alternative Hypothesis = A difference between the base and changed benchmark's fps's
Significance Level = 95% (alpha = 0.05)
Two sample, two-tailed test
Tornado plot of the Hedges' g values:
The demo and file used for this benchmark are provided below.
Demo: http://dl.dropbox.com/u/5490563/B239_bench.zip
File: http://dl.dropbox.com/u/5490563/B239_Comparisons_Summary.xlsx
SHORT ANSWER
Basically, I was able to get large increases in FPS via some basic changes. The biggest benefit was from disabling or minimizing all of the options, followed by reducing the resolution, turning off ambient occlusion, and shadows. The only surprising result was that turning the particle quality down seemed to reduce my FPS.
LONG ANSWER
I wanted to be a bit more rigorous with my updated benchmarking so I combined consistent, real world gaming experience (e.g. using a demo of an actual match), hypothesis testing (e.g. t-test), and a measure of the effect size (e.g. Hedges' g). Relevant background info is provided below.
System Specs:
CPU: Intel i7 2600k (OCd to 4.7GHz)
GPU: AMD Radeon HD6950
RAM: 16GB
Base Options:
- Resolution = 1920x1080
- Display Mode = Fullscreen Windowed
- Wait for Vertical Sync = Triple Buffered
- Texture Quality = High
- Particle Quality = High
- Infestation = Rich
- Anti-Aliasing = On
- Bloom = On
- Atmospherics = On
- Anisotropic Filtering = On
- Ambient Occlusion = High
- Shadows = On
- Texture Streaming = Off
- Multicore Rendering = On
Benchmark Setup:
Roughly 5 min demo benchmarked using FRAPs with each option changed one at a time.
t-test results:
Null Hypothesis = No difference between the base and changed benchmark's fps's
Alternative Hypothesis = A difference between the base and changed benchmark's fps's
Significance Level = 95% (alpha = 0.05)
Two sample, two-tailed test
Tornado plot of the Hedges' g values:
The demo and file used for this benchmark are provided below.
Demo: http://dl.dropbox.com/u/5490563/B239_bench.zip
File: http://dl.dropbox.com/u/5490563/B239_Comparisons_Summary.xlsx
Comments
Yup I also noticed low particles does decrease frames. Also for me, infestation on rich also increase framerates. This happened since 236. Kind of odd but eh.
EDIT: Ran the test and infestation on minimum does increase performance. There was a spot in explore mode where turning infestation to rich gave me more frames but that is useless compared to an actual benchmark.
Anyway, nice work ScardyBob.
Changing res actually increases FPS now, what is this wizardry. Be interesting to see if particles and infestation high make that much difference, rich infest is gonna kill me tho.
* Please refrain from off-topic posts like these, thanks. - Angelusz*
What happens in LQ particles is, every particle (a puff of smoke, a spore mist, etc.) gets rendered in half-res, then composited back into full res. So there's is some additional - but fixed - cost in the composite step. So I would think that with very few particles, it may well be a little slower. But with many particles, like in heavy combat, I would expect the composite cost to be overwhelmed by the rendering cost (in which case, half-res is basically 4x faster than full-res, per-particle).
Or is it like in UE3, where you have one ParticleSystem asset that consists of multiple different Emitters with each of them being responsible for a different part of the effect and with it's own properties? Optimization is here usually done by just disabling those Emitters on lower quality settings that are meant to be just additional eye candy and don't make much of a difference for gameplay if they are lacking. You could even split the same effect in two different Emitters and then only spawn half as many particles on low quality as on high quality, which could work out for stuff like the Flamethrower.
This is usually not the case when it comes to worst-case fps, unless you have a pretty awesome CPU and a pretty awful GPU, a fairly uncommon combo.
You can run r_stats and see if the time waiting for renderer thread gets much above 1ms - its kinda hard to see, as the variable isn't
strictly how much you wait for the renderer thread, it includes one garbage collection run on the main world as well, so it keeps flickering
up and down. I'll see if I can get that changed.
Is it better on or off? If on, is it better to have your CPU or GPU process it?
I can guess what your answers might be, but I was wondering if you've ever benchmarked it? I know you run AMD, but hey, maybe you had once tested on nVidia.
i like to optimize graphical quality and performance, but never bothered to test everything myself
i don't think so... unless you have a CRT monitor which can actually do multiple resolutions
Not true. Just need time to eye adapt low res. I have 1024x768, and its good. Full hd monitor. Fps around 15-80 with my crappy machine. Around 35-45 most of times.
Interesting results scardybob.
I am actually curious about this and did some rough benchmarking just looking at the numbers with PhysX set to CPU and GPU. No conclusive results, as I havent benched this.
Im currently running PhysX on my cpu.
Some simple benching shows that I only gained a few fps from switching PhysX from CPU to GPU. This was by no means an intense benchmark designed to really test PhysX but there were quite a few ragdoll deaths in the 2 minutes I benched for.
I'll do another mini bench to compare as I literally did those benches 1 hour ago.
This is what I was actually refering to. Maybe I'm just used to the crispyness of the higher resolutions, but turning down this setting makes the game look muddy to me, and the UI definitely leaves something to be desired.
This is kind of a no brainer, but turning down bloom, antialiasing, and shadows definintely gave me a 20 frame boost.