In case anybody missed this post over at AAA, it helps explain why we have poor FPS over cities. dok was the one starting the thread and here is his final comments after finding out why the low FPS.
Hello guys and thanks for all the suggestions.
I have also posted this same question at the 1C forums and I got a very interesting response from one of the developers of the Slovakia map. Mkubani gave me this answer:
Quote:
Well, my 2 cents:
1. I am the person that built the Nitra city for Slovakia map.
2. There are 3 main FPS killer areas on Slovakia map: Nitra, Zilina and Piestany towns.
3. There might be several reasons for a lower performance, but I am sure the following has an impact on it as well:
a.) The density of objects in your view (as you have noticed yourself). Nitra town is a very dense one and it has a high impact on the FPS just because of the number of objects.
b.) Variety of objects. The more different objects you have in your view, the more FPS drop you will experience. In other words, 1 type of a house placed 1000 times on a map (= 1000 objects in total) would have a less impact than 20 different types each placed 50 times (= also 1000 objects in total). In fact, the Slovakia map required from Maddox Games to increase the game engine buffer used for loading the objects in the memory.
c.) Quality of the objects = polygoncount (how detailed the 3D model is) and texture size. It is often regarded as unimportant because we have more powerful CPU/GPUs but keep in mind the engine stays the same as it was 5 years ago. It has its limits. As for your specific example, Slovakia generic objects are very efficient on polygoncount and texture size (many of them under 30-40 polys with texture 256x256) = no increased impact on performance. Only the unique objects (e.g. Nitra castle) is more detailed.
d.) LOD drawing distance. Another important thing that influences the performance and which has been tested 3x times by me on Slovakia map until I could accept it. Slovakia objects have an increased drawing distance and a smooth LOD transition distance to avoid a pop up effect. In order to keep the map playable I have adjusted the drawing distance many times for each object category in order not to kill the performance. I could not use the maximum value because the map would become a slide show even over small towns. Another engine limit I believe.
e.) Last but not least, but this is only my feeling. Once you exceed a certain (to me unknown) quanity of objects you place on one location (within your view) you will just make the engine to loose its performance no matter how powerful your computer is. Nitra might be one of such examples.
I hope such explanation helps. So it is not your computer that is really not performing well, it is that we have pushed the IL-2 engine to its maximum limits with the Slovakia map.
One can note that the problem is a limitation of the game engine itself. It appears that IL2 switches from GPU to CPU load under intensive situations. This might be a leftover from the initial engine used back in 2001 when GPU's had a speck of the performance they have today and so the CPU could render more bang for your buck, thus rendering tasks were transfered to the CPU since the bottleneck was mostly at the GPU level. Today, the situation is rather different and we have extremely powerful GPU's which can handle a game like IL2 like a walk in park. The problem still remains, tough, because the already aged engine is instructing the game to leave the GPU alone thinking it won't be able to handle so many objects and it ends up overloading the processor. Since in today's computers it's more likely that your CPU is the bottleneck in games, in a situation in which the CPU is further bottlenecked by the game, one can only expect one thing: low FPS.
I have tried several different affinity masks and the result is always the same: Very Low FPS over large cities and RivaTuner always shows the same weird behavior: the GPU is breathing lightly when the processor is sweting its back to get the job done. When you turn away from a heavy city the game restarts utilizing the GPU and the FPS can raise to well above 120. When flying over Berlin I can get as low as 13 FPS with 100% CPU utilization and 19% GPU utilzation. If the game engine were better capable of doing the opposite I'd be getting FPS way higher than 100, even in very hardware demanding situations.
So, again, the software I use is RivaTuner. You can easily find tutorials on the internet on how to set it up. To have all kinds of statistics on screen, though, you'll also need to have Everest installed and running at the same time, otherwise a N/A will appear. I wasn't using Everest at that time because only CPU and GPU load were the two pieces of information that I was looking for.
It's just too sad that this is not fixable through a patch or driver. It's just a game engine that has been pushed well beyond its fore-though limits.
The bottomline is then: Do not fly over heavily populated areas and avoid some maps in case you can't cope with low fps.
Thanks again for all the help guys.