This article is a follow up of the earlier article I authored regarding video cards and how to better understand their specs.
While going through the learning experience described in that article, I learned some important things regarding how Microsoft Flight Simulator 2004 (FS9) manages textures while your session is in progress. What I learned would become especially important to understand on mid/high to high range systems.
Let's assume that you have a mid/high range video card, and a processor setup that can take good advantage of it. We can summarize that by saying that your video card can handle a large amount of objects and textures on screen, and your CPU can handle the extra load of feeding the video card with the information and textures related to such things.
The purpose of this article is to describe how Microsoft Flight Simulator might be suffering under the setup described above, because it was tuned by default to have less resources available.
As you fly, FS is constantly doing small chores behind the scenes. It does its best to do small amounts of work on each "cycle" of the sim. That way the graphics fluidity is not disrupted very much by the extra chores going on at any given time. Some examples of chores are: Loading up new batches of autogen objects, puting together texture tiles and loading them to the video card, updating various textures in view because of lighting and weather changes, etc.
In most cases it is a very good thing that these chores are split up into small units of work and done just a little bit at a time on each cycle (or frame) of the flight simulator's execution. This allows for large complicated matters such as AI traffic management to happen in a gradual way that allows you to get the most out of your computer's processing power.
However, there is one area where this type of gradual work does not pay off. Providing that you have a capable video card and mid/high range processing power. This is the task of puting together texture updates, and loading them into the video card for use. By default the simulator does this task very gradually, to help reduce any impact that this process might have on performance and fluidity. However, if you have a high powered video card and computer, this gradual approach to loading textures as they change in the sim world can actually cause small but frequent disruptions in the flight simulator performance.
In these cases it is better to have more of the texture work being done up front, and configure the simulator so that it doesn't spread this work over multiple cycles quite so much. The problem is that sometimes so many textures need to be updated that it takes many, many cycles for flight simulator to get it all done. Which can have a negative effect on performance by producing small frame rate anomolies, but also can be a real drag on immersion.
For example, if you start up your favorite flight and everything is ready to go, but switching to the virtual cockpit causes 3-5 seconds worth of texture loading, you might benefit from configuring flight simulator to do this work in bigger chunks.
Flight simulator loads sets of textures into the video card based on what it thinks are the most important textures at the time. However, switching views, new batches of autogen scenery and normal scenery loading up, and a variety of other factors can cause FS to replace what is in the video card texture cache with new textures. So that when switching back to a view (such as the virtual cockpit), you might find that the textures need to be reloaded into the video card texture cache again. You will know this is the case when the textures seem to take a few seconds to become visible. This will be made worse on aircraft that have high numbers of texture, or very large texture files to load.
This is because flight simulator is configured to load only a certain number of textures, and only a certain amount of texture data per cycle. So even though your video card and CPU are high powered, FS might actually be holding back and doing things a bit slower in this regard than your system is capable of.
The amount of texture data that flight simulator will load to the video card per cycle can be controlled by the following options in the FS9.cfg file:
(always back up important configuration files before trying new settings!)
There is another parameter in the config file named TEXTURE_MAX_LOAD, do not confuse these two parameters, they are different from eachother.
You will have to add "TextureMaxLoad" to the FS9.cfg because by default it is not present there.
Typically, you will find these parameters in the [DISPLAY] section of the FS9.cfg (or FSX.cfg) file.
By default the TextureMaxLoad parameter is set to 3. This basically tells the sim that it is allowed to process the equivalent of 3 256x256 textures per cycle. This is further expanded by the TEXTURE_BANDWIDTH_MULT parameter. Which acts as a multiplier on the TextureMaxLoad parameter. The total of this is divided by the locked frame rate (if you are locking framerate). The default settings of TextureMaxLoad=3 (even if this param is not in the file) and TEXTURE_BANDWIDTH_MULT=40 is not necessarily as much as your system can handle. The result is that texture updates that affect both the ground textures, scenery textures, and aircraft/virtual cockpit textures might take many cycles to get caught up. In some cases, they never quite catch up, so that on every cycle the video card is being fed new data. This is not necessarily a good cycle. For some, with the right systems, it might be best to open up these options, and let the CPU feed the video card with more information in one shot.
On a mid powered system I have set the values to:
By making this simple change, I was able to greatly reduce the amount of time needed to display the textures in important areas such as the ground textures and virtual cockpits. Now when one of my flights is loaded for the first time, it takes 1-3 seconds for all of the textures to be cached instead of 3-10 seconds. You can check this yourself by simply rotating around the aircraft in spot view, which causes a lot of texture cacheing when you first start a flight.
If your video card has very high memory bandwidth, you will not really be taking advantage of that unless you ask the CPU to send the video card more data per cycle. So if you have a high end video card, you might benefit greatly from getting multiple video card calls out of the way in a single call in one cycle. This is basically freeing up the CPU over several cycles to do other work (AI management, autogen batch loading, etc). Which could further reduce performance anomolies.
Most importantly, when I make that first switch into virtual cockpit view, I now get my properly textured view in about 1 second, instead of 2-3 seconds. When it comes to immersion, this reduction in texture loading time is very important.
Also, ground textures now update in much bigger groups, instead of 1-3 texture tiles at a time. So if I go from no-snow to snowy weather, my ground textures update much quicker across the entire ground view.
This can reduce the number of "blurry" tile segments on the ground for some users. This is the reason that the TEXTURE_BANDWIDTH_MULT is often touted as the cure to blurry ground textures. However, if a user has a lower end video card and lack of CPU power, these parameters may not help them, and may make texture problems worse as the CPU begins to fall behind in its per-cycle work.
So like most things, there is a trade off here. If you have an underpowered computer or video card, and you ask flight simulator to hit them harder on each cycle as recommended above. You might actually decrease your flight simulator's performance and cause more problems. Your CPU will be trying to do more work per cycle than it can handle. These problems won't hurt anything permanently, so you can always experiment and see how you like the results. So These changes are not for everyone. They are for users who's sytems are not being utlized fully per-cycle by the flight simulation software.
If you have picked up a powerful processor and/or video card just for flight simulation, the above advice might very well turn out to be helpful for you.
If you have at least a moderately powered CPU and a MID-HIGH/HIGH end video card. You will most likely benefit from asking flight simulator to do a little more texture related work per-cycle using the configuration options shown above.