FSX:Tweak of the Week ( or 2 )
Originally posted on fsinsider.com
Now that I have burst peoples bubble on PerfBuckets and Procspeed on my blog ( https://blogs.msdn.com/ptaylor ), let’s talk some real tweaks, TEXTURE_BANDWIDTH_MULT and BUFFERPOOLS.
These are tweaks in the fsx.cfg file. If you don’t know what that is, you probably don’t want to be using these.
TEXTURE_BANDWITH_MULT (EDIT:this is in DISPLAY, not GRAPHICS)
The mysterious sounding TEXTURE_BANDWITH_MULT is our first target. This is a setting in the [DISPLAY] section of the file, formatted like this:
[DISPLAY]
TEXTURE_BANDWIDTH_MULT=n
Where n can range from 10 to some reasonable value that is related to your frame rate limit.
From Rafael Cintron, part of the FS Graphics and Terrain team, comes this description:
“
The TEXTURE_BANDWIDTH_MULT option in the Graphics section is the target frame rate use for calculating texture bandwidth. The higher you set this value the more textures we will allocate and copy per frame to the graphics card. The lower you set this value, the less we will allocate and copy up to a minimum limit. As an example, the default rate in the “high” perf bucket setting is 40. The lowest perf bucket setting is 10.
Higher settings on this flag can cause stutters on frames where the terrain system has finished compositing lots of textures. Lower settings can reduce stutters on busy frames and spread out the load across multiple frames
“
So thinking this thru, if the value you set is 40, and your frame rate limit is 30, then we will send 40/30 or 4/3 as much textures per frame.
Moving this value to 400, like I have seen some users post in the forums, is probably *not* what you want to do since that increases the texture load on the graphics card by 10x, eg 400/40 = 10x. And after talking about this to Raf, setting it to 0 is ignored and can be validated by setting it to 10 which should give no different results.
BUFFERPOOLS
The pedestrian sounding BUFFERPOOLS is a section of its own in the fsx.cfg file. There is a setting in there called Poolsize, as in
[BUFFERPOOLS]
Poolsize=n
Where n is the amount of bytes we will allocate for one pool of vertex and index buffers to store geometry.
Again from Raf:
“
In RTM, the default setting was 1MB (1000000). The lower this number, the more pools the allocator will have to rummage through to find space for buffers and the more stutters you may have. In Sp1, we raised the default to 4MB (4000000) and optimized the underlying algorithm for finding free buffers
“
So be careful here, making this smaller can hurt you, since searching for space takes time and can cause stutters, and making the number too large can waste space. 4-10m is probably the range to be thinking about using unless you have a very high memory graphics card ( >512 )
So there you go, some real tweaks to begin your weekend with!
Comments
Anonymous
June 01, 2007
Haha... that's pretty funny... how long have the flight sim forums been bandying about TEXTURE_BANDWITH_MULT without knowing really knowing what it meant (though I guess the general idea was still understood). Although, I'm actually not sure I completely understand this explanation. Getting back to your example of a setting of 40 and fps of 30... so you will be set up to send at most "40/30x" texture data to the card per frame.... what is x exactly? But ignoring that for now, 40/30x30 = 40x is the amount of texture data sent to the card per second. But say you could actually only run at 20fps. Guess what: 40/20x20 = 40x texture data per second. So actually, it seems that fps would play no role at all in how this setting affected overall texture data transfer rates. Am I wrong? I guess the part of this setting I think would be important to understand is over the long term, on a typical system, how possible is it that the texture generation will outpace the rate at which it is sent to the card... a lower value will spread it out across more frames, but how at risk are we of spreading it out so far that some texture data never makes it to the card?Anonymous
June 01, 2007
Maui: dont try to read more into it than is there. 40/30 = 1.3x as much texture per frame. over our default. 40/20 = 2x as much texture per frame. again over our default. so in those cases, we would allocate and upload using those multipliers. thats what the _MULT is, this is a multiplier factor. thats all there is to it. multiplying by seconds is something you made up and has nothing to do with the discussion.Anonymous
June 01, 2007
The comment has been removedAnonymous
June 01, 2007
The comment has been removedAnonymous
June 02, 2007
BufferPools clarification Please: When you say the default is now 4MB, is this independant of detected hardware or perfbuckets? I.e., all SP1 users have 4MB set when bufferpools is not declared in the FSX.cfg file? You also mention the 4 to 10MB range unless you have a GPU with more than 512MB RAM. Since I have a newer 8800GTS card with 640MB RAM, which way does the tweak go? Should I consider tweaking towards BufferPools=10M since I have a 640MB card? Thanks for the clarification. Good blog info... AlAnonymous
June 02, 2007
Jordanal: yes, the SP1 default is 4M, it was 1M in RTM. yes, if you have the vidmem to spare bumping it up is worth testing.Anonymous
June 02, 2007
The comment has been removedAnonymous
June 02, 2007
Silent: it should be in C:UsersUSERNAMEAppDataRoamingMicrosoftFSXAnonymous
June 02, 2007
Phil a while back when SP1 was cooking you mentioned that with the DX10 update users may get a little boost with performance, do you have any estimates as to what we may expect or is it too early, also what eye candy would come around with the dx10 update ? Thank's for your timeAnonymous
June 02, 2007
The comment has been removedAnonymous
June 03, 2007
Silent: we are aiming for another performance bump as well as visual features.Anonymous
June 03, 2007
The comment has been removedAnonymous
June 03, 2007
The comment has been removedAnonymous
June 03, 2007
The comment has been removedAnonymous
June 04, 2007
Nick: thats too much to respond to in a comment, that deserves a separate post. I will have to research, and this is behind the water topic that was asked for previously. Good ask, though, I will get to it.Anonymous
June 04, 2007
The comment has been removedAnonymous
June 04, 2007
As a side note, and there is no need to publish this, I followed your suggestions in the AVSIM forum for setting up a clean RTM, getting it stable and sharp at 20FPS in Seattle (I did that with the 747 and the Baron with different weather to assure max loads were applied), Then install SP1 and repeat the setup. I followed your list very carefully. I was unable to get rid of blurs and stutters without making the tweaks I mentioned. It appears, at least with certain combinations of hardware, that the simulator likes to look away from the fiber frame unless it is set up in such a way it is forced to focus on the mesh and textures. I will say that ATi and Intel are much easier to get locked down than Nvidia. Also, I have never seen any OOM errors (out of memory) but I am also running Vista and XP x64. I may be mistaken but I have also never come across anyone posting problems running an ATi adapter with OOM issues, only Nvidia.Anonymous
June 04, 2007
The comment has been removedAnonymous
June 04, 2007
The comment has been removedAnonymous
June 04, 2007
Silent: LOL, the only person in this blog is me. any tweak entries that arent present need to be added.Anonymous
June 04, 2007
The comment has been removedAnonymous
June 05, 2007
phil, is there a way to change the way the draw distance is defined ? i would like to have things sharper at a longer distance, my system is running perfect with everything maxed @ a constant 30fps which is what ive set, i have increased the bufferpools to =10000000 and havent noticed any drop or gain in performance, all i want now is to maximise the visuals, dont get me wrong its stunning now with sp1 but as you may be aware that if you look ahead a few miles things dont tend to be as sharp and i would like to increase the sharpness. hope you can help :)Anonymous
June 05, 2007
Silent: as my post says [GRAPHICS] TEXTURE_BANDWIDTH_MULT=n so TEXTURE_BANDWIDTH_MULT has to go in the graphics sectionAnonymous
June 05, 2007
Silent: changing the LOD radius slider is the only way to affect what is drawn in the distance.Anonymous
June 06, 2007
oh well im stumped then as my lod slider is set to maximum, maybe some addon scenery will change that ? thanks again