Post on 25-Oct-2015
Embed Size (px)
DESCRIPTIONA compendium of FSX tweaks on Avsim by Bojote
Do you believe in miracles?
Yeah I know.. I'm a nobody you don't know who I am, I'm not known in the community, so probably you won't take me seriously... but, just assume for a second, i'm right and I know what I'm talking about would you at least give a shot at 'proof reading' it? is the idea clear, confusing? I want to make it public for 'general use' you are of course invited to try
What you are about to read CAN PRODUCE UNFAVORABLE RESULTS depending on your particular setup and slider settings, so this is NOT a 'solution' to any problem, this is simply a hidden, undocumented tweak that can be applied to Flight Simulator X to obtain aproximately a 30% performance improvement.
Before I begin, a little background.. I've used this tweak personally, for more than a year, second, I have dedicated considerable time 'understanding' the tweak, its purpose, and specially the 'reasons' why there is such a 'dramatic' performance increase. So please... DO NOT TRY if you have 'issues' or problems in your current setup, only try it *IF* you are absolutely certain that you have a fairly stable setup and that you UNDERSTAND what I'm explaining in the following lines:
Lets first discuss 'how' applications, 'particularly' FSX works (I will keep it simple)When you 'fly' in FSX, each 'frame' its like a 'photo' it contains certain objects and textures that need to be 'drawn' for EACH 'photo'. When you play this 'photos' in rapid succesion, say, for example 25 'photos' per second, the perceived sensation is that you are 'moving' FPS = Frames per Second, each 'frame' is the 'photo' I'm talking about.
In FSX, the 'rendering' or 'drawing' of this objects, occurs, on a per 'frame' basis.. the higher the frames per second, the higher the number of objects that need 'drawing' This 'drawing' works by having the 'CPU' instruct your 'video card' what to 'draw' on screen. Each 'instruction' the CPU sends to the video card is 'queued' in a 'buffer' FSX, then 'determines' the 'threshold' where that buffer is 'filled' to flush all the commands to 'another' buffer, this one is called the Command 'ring' buffer.
This happens, so FSX can syncronize the CPU and the GPU in terms of instructions proccesed. If this 'buffer' the one created by the application, didn't exist, then you could 'under certain conditions' COMPLETELY CRASH FSX. The reason for this 'crash' is that FSX would have to send the intructions 'directly' to the 'Command Buffer', which is the one that the Video card reads to 'draw' the objects on screen.
If the video card is not fast enough to process the INCREDIBLY high number of 'draw calls' sent by the CPU per each frame (photo), then STALLING occurs. Stalling, means that the CPU 'writes' into the command buffer FASTER than what the video card is capable of proccesing (the command buffer its a ring) its finite it can hold 'certain' number of instructions at a given time, if the video card doesn't read it fast enough it gets overwritten and video corruption occurs (you'll know this because spikes come out from the AUTOGEN)
If you understand the above correctly, then you also must understand that 'application managed' buffers (aka BufferPools) 'cost' some CPU usage, and particularly in FSX this usage is MASSIVE! however, this is NOT a bad thing, its a 'safety' mechanism that the application uses so its almost imposible that it will 'fill' the command buffer with instructions. The 'Aplication managed' buffer, is like a 'middle man' it coordinates what goes into the command buffer and 'how' to keep things in sync so you don't batch an exessive ammount of objects for the video card to process.
So, why does Microsoft includes an 'application managed' Buffer (also called Explicit Vertex Buffers)? they did so, so ANY ONE could use FSX regardless of setup and ensure 'up to a point' that this will perform reliably indepently of hardware. So, DONT BLAME MICROSOFT!! they did the right thing and this is NOT a bug.
So, what happens when you tell FSX to 'bypass' this 'application managed' buffer and send all the 'draw' instructions DIRECTLY to the command buffer for the video card to process? (instructions are really sent to the D3D API, I'm just keeping the explanation simple for our sarcastic folks out there) well.. what happens is that FSX doesn't need the middleman anymore, what happens is that FSX doesn't need to control what to draw or when to draw it. Now, it simply pumps all the information as fast as it can to the Video Card, and by doing so you FREE a massive ammount of resources that are now allocated to your current flying session!! Now.. Do you understand why this tweak is SO powerfull, but at the same time, EXTREMELY dangerous for stability? It is because you need to have an INTIMATE knowledge of WHAT is going on in your computer!! you need to know 'exactly' how much is 'too' much for the GPU to process.. and this is, where things get interesting.
How can you be 'sure' that your video card is in TOP shape and able to process ANY and EVEYTHING you throw at it? remember... this is NOT about 'raw' power... this is about the card ability to 'process' the commands sent by the CPU, FASTER than the CPU ability to 'send' those commands.. its like a 'race' and the GPU needs to be faster! so, this holds specially true for folks using overclocked i7's @ 4.2 and DONT BELIEVE your GPU % Usage meter! it only shows USER SPACE... it doesn't tell you how much the 'kernel' (system) is using to process commands in the queue.. AND don't compare FSX to Crysis please... those are games OPTIMIZED to make full usage of hardware programable shaders! they are perfectly balanced!
well, you need to start forgeting EVERYTHING you have learned in the past 4 years.. specially things like:
(AntiAliasing) but only when it is controlled by nHancer(Anisotripic Filtering) again, ONLY if controlled by nHancervSync set to ON (this is a KILLER)Multiple Monitor setups (even clone mode)The ENBSeries mod
the above, KILL the card ability to process commands 'but not the ability to RENDER or DRAW the objects' so if you absolutely NEED the above, you can stop reading now
So, if you want to give this tweak a try, you need to start by using the application controlled AntiaAlias and Anisotropic filters, you need to also force vSync to OFF, and make sure you are running a single monitor setup. this will ENSURE, that the card is in top shape to process commands 'as quick' as it can... specially, if using nVidia cards (ATI's dont have this problem, more on that later)
One side note: ATI's 5870 vs nVidias GTX 285 they are both EXCELENT cards... but they have completely different architectures, the ATI's have LOTS of tiny 'slow running' shader processors, the nVidias have fewer shader processors (a lot less) but they are TWICE as fast... so, how does this affects the cards ability to 'process' and 'render' draw commands?
well.. its up to you to decide: the ATI's have 1600 small processors, they are called 'shader processors' the more processors you have, the better the card ability to 'multitask' and do parallel processing so, the ATI's are FANTASTIC reading the command buffer faster than ANY card on the planet (even the new nVidias GTX 480, also called by their codename Fermi) so with an ATI you could practically have FSX nirvana if FSX were to send all draw instructions to the command buffer bypassing the BufferPools.. however, THERE IS A CATCH. Since ATI's have more shader processors, they need to run 'slower' (they run at 700Mhz) same as the core clock. so, complex scenery, clouds, add-on aircraft will considerably LOWER your total average FPS. so, again, its up to you to decide... if you only fly default planes, and want EVERY SINGLE SLIDER MAXED out, vsync, nHancer, ENBSeries mode etc. then the ATI is for you, ITS IMPOSSIBLE TO CRASH IT! I could crash mine (I only owned it for like 2 days) no matter what I tried, but I lost 6FPS! to me thats unnaceptable.
Now.. the nVidias, particularly the GTX 285, have exactly 240 Shader processors, they run at 1476Mhz (and some can be overclocked even higher) this card, is a monster... and even though the ATI's (in raw speed) are faster, the nVidias can render 'complex' scenes much quicker (specially things that relay on shaders such as clouds, high water settings, buildings etc.), so the CPU doesn't have to wait for a particular scene to be rendered. Remember, the FASTER the card 'renders' a scene, the faster the 'frames' will be processed and the CPU will keep producing them! so, as you see, there needs to be 'BALANCE'. remember, that any complex system will be limited by the speed of the slowest running member on the system. Now, back to video card comparisons: The downside to the nVidias?? THEY SUCK at reading instructions from the command buffer fast enough, so they can be stalled by the CPU IF you are running high frame rates and using complex autogen (which is what fills the command buffer quicker, specially after SP2 where there is massive object batching per frame) so when using nVidias LIMITING your framerate to 25-30FPS and lowering autogen is paramaunt. (including the steps I have already mentioned) like vsync OFF, single monitor setup, No ENBSeries and application controlled AA and AF. but don't worry.. The GTX 480's will change all that they have 480 shader processors still much less than the ATI's but enough to give you Flightsim nirvana and turn FSX into a whole new ball game. So, IT IS completely possible to achieve what everyone though was a dream. FULL MAXED sliders and fluidity (I don't include car traffic) MAX 2.0 Water (which is a killer) or bloom (the other killer) but you can still have pretty descent AI traffic and easily achieve 20-25 FPS under the most demanding conceivable