Jump to content
Sign in to follow this  
SAAB340

How FSX works and how performance is affected by different hardware explained

Recommended Posts

Hi,This is my first post at this forum. I have done extensive testing into how different hardware affects FSX. There are loads of recommendations in the forum saying to use this or that hardware without anything really backing up the recommendations so I thought to find it out my self. I now want to share my findings. I have looked in to how CPU overclocking, number of CPU physical cores, Hyper Threading on/off, different affinitymasks, GPU overclocking, different GPUs, memory timings, memory speeds and single vs. dual channel setup actually affects FSX performance. I have also looked in to what happens when you lock the FPS and the use of FiberFrameTimeFraction. This has mostly been done using the FSXmark07 benchmark flight using FRAPS. A flight in the standard FSX CRJ from overhead Seattle, out past the Boeing field and the Seattle-Tacoma airfield and then out towards Mount Rainier. It is a good variety of scenery including city, airfields, forest and rural areas. I’ve been using the standard FSX scenery with Acceleration pack and only the wideview and the affinity mask tweaks in the .cfg file. I have not just looked at the avg, min and max FPS numbers that FRAPS produces but I have observed the runs, analysed fps graphs for performance and the frame times for stutters. I have tested using a few various settings in FSX to reach my conclusions. FPS has always been set to unlimited apart from during the testing of locked FPS when the FiberFrameTimeFraction entry in the .cfg also has been used. The main components in the system I’ve been using are:EVGA p55 FTW motherboardIntel i7 860 CPUNvidia 8800GTS512 and GTX470 GPUsGeiL 4*2G PC3-17000 2133MHz C9 DDR3 Ultra RAMIntel 160GB G2 SSDCoolerMaster Real Power M850 PSUHP LP2475w 24” LCD running at native 1920x1200 Software used:Windows 7 Ultimate 64bit OSFRAPS 3.2.3CoreTemp 0.99.7GPU-Z 0.4.3CPU-Z 1.52.2FSX Deluxe with Acceleration Expansion PackHorizon VFR Generation X volume 4, Scotland: The Western IslesScotflight for FSX photo Display DriversNvidia 197.45 and 260.99 First of all we need to clarify what performance actually is. During my extensive benchmarking I’ve discovered that there is 4 different aspects we need to consider: Texture and terrain loadingLoad timesStuttersFPS I will start with what I’ve found out of how FSX is actually running on the Computer.We can divide the FSX program in to 3 different parts. I have decided to call them: Texture and terrain loading threads (T&t threads)FibresMain Thread They all behaves differently and affect each other in different ways. Let’s look at the three different parts more in detail. T&t threads:They are loading the textures and terrain details of the simulator. They are assigned in the affinitymask. They will normally operate up to around 50% core load. Every 61 seconds they will perform a refresh of the lighting of the textures. The core load then goes up towards 100% while the refresh is ongoing. The normal 50% load might be a lot lower if the Main Thread gets restricted. These threads are highly responsible for the load times of the game. These threads do benefit from Hyper Threading. The T&t threads are technically speaking a special type of Fibres as they are processes that are offloaded from the Main thread but I do not refer to the T&t threads when I talk about Fibres and Fibre offloading. Fibres:These are processes that can be offloaded from the main thread. FSX will offload up to 50% of core load from the Main thread. These Fibres might be run on the same core as the Main Thread or any other CPU core that has less then around 50% load from FSX on it. You can however not define exactly where you want them to run as you can with the T&t threads in the affinitymask. The Fibres might be spread between several cores. I’m not entirely sure how and why it is determined where the Fibres will run. If it is the operating system, the drivers or FSX that assigns the cores. The Fibres do however most of the times end up on appropriate cores and you can indirectly guide them with the help of the affinitymask by assigning the T&t threads in a way that is advantageous for offloading Fibres from the Main thread. Fibres can take advantage of Hyper Threading. Main thread:This is what runs the actual game. This is what determines what FPS you will get. So you want the Main Thread to be able to run undisturbed at as high MHz as possible. Having anything running on the same physical core as the main thread will drop FPS and might induce stutters. FSX can offload T&t loading and Fibres from the Main thread for more performance. The Main thread then still needs to use some resources to cooperate with all the offloaded Fibres. Now let’s look at the different performance aspects. Texture and terrain loading:As you start to move forward the simulator needs to unpack the texture and terrain details.If you do not have enough T&t loading power you will start to get blurry textures as you start to fly faster and start manoeuvring. The more T&t threads that are assigned in the affinitymask the faster the sharpening of the textures and the terrain happens. Higher MHz on the existing T&t threads does also improve the T&t loading. Normal T&t load is up to around 50% so using Hyper Threading to put 2 T&t threads on one physical core gives pretty much the same T&t loading as using 2 separate physical cores without Hyper Threading. T&t loading can be performed on the Main thread so you get some T&t loading even if no T&t threads are assigned in the affinity mask. Load times:This is also dependant on the T&t threads. Add more T&t threads and you get a faster load time. Going from no T&t thread to one does not make a huge improvement in load time, only around 5%. Adding a 2nd T&t thread further improves load times with around 26% and a 3rd with around 17%. It does also benefit from Hyper Threading. Assigning 2 T&t threads on one physical core does improve load time around 4% but that is nowhere near as much as having 2 T&t threads on 2 separate physical cores. This is fully understandable as Hyper Threading is just a way of fully utilise a physical core at high loads. Load times scales perfectly with CPU frequency. Double the CPU frequency and you’ll half the load time. The refresh of the textures that occurs every 61s on the T&t threads is also a type of load time so more T&t treads and higher CPU frequency shortens the time that refresh will take. Stutters:You can get different types of stutters. One is when there is not enough CPU power to drive the game so the FPS drops so low so the game start to look more like a slideshow. Another is when FSX is getting limited by the GPU. The FPS is then generally high, but quick variations in the FPS between individual frames produce a jerky stuttery feeling. A third variation of stutter is when there is not enough RAM available so RAM has to be paged. This creates a few, but hard, sudden stutters when the game just pauses for up to a second just to continue as normal after. FPS:This is fully depending on the main thread. To get as many FPS as possible we need to offload all the Fibres and the T&t loading from the same physical core as the Main thread. FPS scales well with CPU clock until the GPU becomes the bottleneck. Offloading all the Fibres is effectively doing the same as a 50% overclock on the CPU. Having only one T&t thread alongside with the Main thread gives the highest FPS as you are actually offloading a bit of T&t loading from the Main thread. Adding further T&t threads does create a little bit of extra work for the Main thread to assign and keep track of the work of these T&t threads so there is a slight FPS penalty of around 2% for each T&t thread you add. (When you are CPU limited). Higher FPS means that you get less stutters induced by the CPU. Affinitymask:Now let’s look at the affinitymask and see why it is really important to add this to the .cfg file and how this can really affect the performance of FSX.With the affinitymask you tell FSX on what cores you want the T&t threads and the Main thread to be run. The affinitymask is a decimal number but it is used in its binary version and is easier to understand if we convert it to binary. (This can be done using the standard windows calculator in the advanced mode for XP or programmer mode under Vista and Windows7).For example Decimal 10 = binary 1010. Each digit in the binary affinity mask from right to left (this is how binary numbers are red) corresponds to a logical cpu core with Core#0 being the digit furthest to the right so it is mirrored compared to how the cores appear in windows task manager. 1 means that the core is assigned and 0 means that the core is not assigned. The Main thread will be on the lowest assigned core and the rest of the assigned cores will be T&t threads. So with affinitymask Decimal 10 = binary 1010, the Main thread will be on Core#1 and there will be a T&t thread on Core#3. With affinitymask 13 = binary 1101 the Main thread will be on Core#0 and Core#2 and Core#3 will be T&t threads. If there is no affinitymask entry in the .cfg file FSX will use an affinitymask that assigns all cores on a CPU without Hyper Threading and an affinitymask that assigns every second core on a CPU with Hyper threading starting with Core#0 What consequences does that have on FSX given what we know of how the 3 different parts behaves (T&t threads, Fibres and Main thread). Let’s look at common example. A quad core CPU without Hyper Threading. (We assume we are not limited by the GPU) Core#0: Main thread, running at close to 100% load all the time. Core#1: T&t thread. Up to 50% load going up to 100% during texture lighting refresh.Core#2: T&t thread. Up to 50% load going up to 100% during texture lighting refresh.Core#3: T&t thread. Up to 50% load going up to 100% during texture lighting refresh. Is there CPU space to offload the Fibres from the Main thread? Well, the T&t threads might not always be at their maximum of 50% load during normal operation so some Fibres might be offloaded to these cores until they reach 50% load. But during the lighting refresh the T&t threads are already way above 50% so no Fibres will be offloaded from the Main thread. FPS will take a big plunge during the lighting refresh with possible stuttering as well. Using an affinitymask that leaves one core unassigned, for example 13=binary 1101, makes sure that there is always space for the Fibres to be offloaded to Core#1 so we never get a FPS dip during the lighting refresh. The drawback is that we loose one T&t thread so we will get longer load times and not as quick texture loading. Let’s look at another example. A dual core CPU without Hyper Threading. Standard affinitymask 3=binary 11Core#0: Main thread, running at close to 100% load all the time. Core#1: T&t thread. Up to 50% load going up to 100% during texture lighting refresh. Here there will pretty much never be any chance to offload Fibres from the Main thread as the only T&t thread will be working hard all the time and the lighting refresh is going to take so long time so it is almost time to start another one as soon as it’s finished. You will be stuck with low FPS. Here we are restricted to just two other options with the affinity mask. 1=binary 1 or 2=binary 10. Both will lead to the same thing. One core with the Main thread and the other one will be unassigned. The Fibres will be offloaded to the unassigned core so FPS will be high, but without any T&t loader the terrain will be blurry. Not really a preferable option either. So you need more than 2 cores to get good performance in FSX. What about a Dual Core CPU with Hyper Threading? Standard affinitymask 5=binary 101Core#0: Main thread, running at close to 100% load all the time. Core#1: free Core#2: T&t thread. Up to 50% load going up to 100% during texture lighting refresh.Core#3: free Now we have 2 unassigned cores always available for the Fibres to be offloaded to. Most of the Fibres will end up on Core#3. (some on Core#2 if possible between the light refreshes) and a small part on Core#1. The Fibres that end up on Core#1 are not actually getting offloaded from the Main thread as they are sharing the same physical core. So these do not contribute to any FPS increase.Using affinitymask 9=binary 1001 will be slightly more successful on avoiding getting Fibres on Core#1.If more T&t loading is required using affinitymask 13=binary 1101 will give that. There will be a drop in FPS during the lighting refresh. But it will still give better FPS, stutters, load times and T&t loading compared to using the same processor without Hyper Threading with the standard affinity mask 3=binary 11. Assigning more then 3 T&t threads in the affinitymask does have the effect that the Fibres completely stop getting offloaded for everything between one second up to five seconds every now and again even when there is nothing blocking them. I’m not sure why and I can’t see any pattern more then it happens at the same set places of the benchmark but it far from happens on every run at every place. If I had a 6 Core CPU I could at least have seen if it was due to the use of Hyper Threading. The entry into the .cfg file to use where n equals the decimal affinitymask number is:[JOBSCHEDULER]AffinityMask=n Locking the FPS and the FiberFrameTimeFraction.With the FPS slider set to unlimited the Main thread dynamically does as much (or little) T&t work and cooperation with the Fibres that is necessary that moment. This change when you set a FPS lock. Then a certain amount of CPU time on the Main thread is devoted to T&t loading and Fibre cooperation all the time. That leads to a drop in how much FPS the Main thread can produce but an improvement in T&t loading. This is why you are not able to have the FPS locked as high as the minimum FPS you can achieve with unlimited FPS set. How much CPU time that is taken away from producing FPS is determined by the FiberFrameTimeFraction (FFTF) in the .cfg. With no entry in the .cfg the default value=0.33. The locked FPS we can archive compared to having unlimited FPS will worst case be 1/(1+FFTF)=%FPS. With the default value that gives 1/1.33=0.75. So we are worst case only getting 75% of the FPS. By putting in the FiberFrameTimeFraction=n under [MAIN] in the .cfg we can control how much the impact on FPS is going to be. Lowering the FiberFrameTimeFraction will devote less of the Main Threads CPU time to T&t and will improve the FPS we can achieve. As long as the Main Thread is always able to maintain the locked FPS even FFTF=0 will work absolutely fine. But there is a huge risk in lowering FFTF too much as it also takes away the CPU time that is needed for the Main Thread to cooperate with all the Fibres. That becomes apparent as soon as the Main thread is not able to keep up with the locked FPS. You will get really blurry textures. You will also start to loose autogen and traffic. As mentioned earlier the T&t loaders are technically a special type of Fibres and not enough cooperation with the Main thread will just stall the work they do. If conditions change so the FPS goes back up to the locked value things will slowly get back to normal again. What happens if we increase the FFTF depends if we have a T&t tread or not. If we have no T&t thread (a single core CPU or anything else using affinitymask=1) of if we use a multi core CPU.In the first case without a T&t thread, increasing the FFTF will give you a lower achievable FPS but also better T&t loading. It is a way to sacrifice FPS for T&t loading on a single core CPU.When we have one or more T&t threads increasing the FFTF will still give you a lower achievable FPS, but you won’t get better T&t loading. That is because the increased restriction on the Main thread leads to reduced work on the T&t threads. So you sacrifice T&t loading on the T&t threads and FPS to get some extra T&t loading done on the Main Thread. The end result of increasing FFTF when using a multi core machine is less achievable FPS and less T&t loading so you don’t gain anything, you just lose out.Using a dual core CPU with affinitymask=1 and a higher FFTF will still give you less T&t loading for the same FPS compared to using the standard FFTF value and having one T&t thread assigned (affinitymask=3). The value of FFTF has no impact when you set the FPS slider to unlimited. Now let’s look at how different hardware changes affect the performance. First of all, the CPU:We all know/heard that FSX is very, very CPU hungry. I can only agree after all the testing. It requires at least a 3 core CPU or a dual core with Hyper Threading if you want to get reasonable FPS over urban areas with many sliders to the right. It can also make good use of more cores than that for texture loading and to shorten load times. That won’t however give you more FPS. I have not tested different CPU architectures against each other. I have not done any testing regarding different cache sizes either. Different CPU architectures do have different IPC. (Instructions Per Clock) and will make a big difference. Different cache sizes will also probably have an impact but I would guess a smaller one. The bottom line is that you can’t compare processors just on clock speed. As far as I am aware, the current Intel Nehalem architecture (i3, i5 and i7 processors) have better performance per clock then the older Intel Core architecture (Core II processors) and the current AMD K10 architecture (Athlon II, Phenom and Phenom II processors). What about overclocking?FSX will eat every MHz you give it. Clock frequency and FPS scale perfectly given these three conditions: 1. All Fibres are offloaded from the main thread all the time.If not, a different CPU speed will most likely lead to different amount of offloading of Fibres.Remember that full Fibre offloading equals a 50% overclock. 2. Current settings are not already too much for the Main thread.When the current settings are too much, FSX will start reducing autogen and texture loading on the Main Thread in order not to drop FPS too low. It will however keep the traffic and custom buildings. This is the reason why a lot of traffic needs so much CPU power. Overclocking when the settings are too high will not scale perfectly FPS wise as most of the extra CPU power will initially be used to restore the autogen to full. 3. We are not GPU limited.An increase in CPU clock will not give an increase in FPS when the Graphics card is the bottleneck. The use of Hyper Threading:As you seen above, using Hyper Threading is a good way to get more T&t loading power in FSX. Using Hyper Threading also brings in the danger that work will be assigned on the core that shares the same physical core the Main thread uses. That would lead to a drop in FPS. Correct use of the affinitymask is vital. I was hoping that blocking that core out for FSXs use in windows task manager would be a good way to stop Fibres from ending up there. That did unfortunately not work. It creates hard stutters that are unbearable.The worst thing you can do when using Hyper Threading is assigning a T&t thread on the same physical core as the Main thread. Then you are assured a core load of pretty much 50-100% all of the time to be shared with the Main thread. A disaster for the FPS. That is the equivalent of dropping CPU frequency 1/3rd all the time, down to halving it during the light refresh. If you have assigned a T&t thread on all other cores as well you’ll not get much offloading of the Fibres either. During the light refresh you’ll then end up with only 1/3rd of the FPS you would have had compared to full Fibre offloading and nothing on the same physical core as the Main thread. Turbo Mode:If you are not overclocking your CPU and are running it at stock speed, please make sure you have turbo enabled if it is available. It does improve all four performance factors, T&t loading, load times, stutters and FPS.On my i7 860 it does at least turbo up the 1 bin the i7 860 has available during usage of 4 cores all the time. Outside intensive loading it sometimes increases the CPU speed up to 3 bins (less common using Hyper Threading). The FPS and load time numbers agrees. The stock i7 860 2,8GHz processor actually performs like a 2.95GHz Processor having turbo enabled. So if you are not interested in overclocking but are looking to buy one of Intel’s latest processors, remember to look what clock speed its going to give with turbo mode when all cores are getting used. General CPU findings:Flying over cities with loads of buildings and traffic is what requires a Processor with a high frequency to keep the FPS up.Flying low and fast is what requires many Processor cores (T&t threads) to avoid blurry textures. That is easily seen when using photo scenery. Photo scenery generally isn’t too taxing on the Main thread (not much autogen or buildings) so it doesn’t require a fast Processor to get a decent frame rate. It does however require a lot of T&t threads in order to stay sharp when you start to fly faster. So here it might be better to sacrifice FPS and not have full Fibre offloading all the time in exchange for an extra T&t thread if you are running a Dual Core with Hyper Threading (affinitymask=13), A Tri Core (affinitymask=7 or none) or a Quad Core without Hyper Threading (affinitymask=15 or none). Let’s continue with the memory:I have been able to test 2GB single channel, 4GB single and dual channel and 8GB dual channel at a great variety of memory speeds and timings. So does different memory bandwidth and latency (timings) affect performance?Yes it does, but only by a small amount when we are CPU limited. We are also only affecting the FPS and that in turn has a really small impact on stutters. I have not been able to see any impact on T&t loading or load times. First of all, let’s look in to the memory bandwidth.It can be changed with the speed of the memory and/or by changing the amount of memory channels. I have found that going from single channel to dual channel does not scale perfectly. So to run a single channel at twice the speed gives a slightly better result then adding another memory channel instead. But we are still talking really small improvements. Doubling the memory bandwidth with memory speed gives around a 6% FPS improvement and doubling the memory bandwidth by going from single to dual channel gives around 3% improvement. There is however a lower limit of how much bandwidth you need, where dropping memory bandwidth further will have a much bigger impact on FPS and stutters. Where this lower limit is depends on your CPU. A faster CPU requires more memory bandwidth. An i7 860 running at stock 2.8GHz seems to have that limit around a single channel of memory at 1067MHz. The same CPU overclocked to 4GHz seems to have the limit around a single channel of memory at 1333MHz. So as long as you are running at least dual channel memory I can’t see that memory bandwidth is going to impact performance more then 6% on the FPS unless possible if you are running DDR memory or really slow DDR2 memory. In that case the CPU will probably be a lot more limiting anyway and will probably require even less bandwidth. I have not been able to test triple channel memory but I am confident enough to say that increasing the bandwidth with 50% by going from dual to triple channel on an i7 will only give a maximum of 1% improvement in FPS and will be unnoticeable. Let’s look into the memory latency.The latency is affected by the memory timings and memory speed. To get the latency in nano seconds (ns) you take the timing, multiply it with 2000 and divide with the memory speed. So for example if you have a timing of 9 on a 1333MHz memory you get a latency of 9*2000/1333=13.5ns. A timing of 7 on a 1600MHz memory will give a latency of 8.75ns. Lower latency gives slightly, slightly better FPS. But we are still only talking around 3% FPS improvement for reducing latency with 1/3rd or up to 5% improvement by almost halving the latency. So you shouldn’t see any amazing improvement by having C6 memory instead of C7. It will have a slight measurable impact but in reality it will be unnoticeable. Running the memory in single channel at 800MHz with 17.5ns latency does give around 22% less FPS and more stutters then running them in Dual channel at 1600MHz with 8,8ns latency. No one will however be running a single channel on an i7. In reality memory speeds and timings doesn’t directly have any visible impact on FSX. Running my overclocked i7 system in dual channel with the slowest memory speed and latency available (1/3rd difference on both) was still only a 5% FPS difference to the fastest memory settings I could use.However if you are overclocking, having RAM that can’t handle low enough latencies or fast enough speeds might be stopping you from reaching a higher CPU clock. That might indirectly have a much bigger impact. How much RAM does FSX need?Answer: 4GB. There is no performance difference for FSX itself to use 8GB instead of 4GB. Not really a surprise given that FSX is a 32bit program. Using 2GB is possible, but not really advisable at high settings as you get a few really hard stutters as soon as the operating system has to start to swap to the page file. That is even when the pagefile is on an Intel SSD. FSX is otherwise running the same on only 2GB compared to 4GB apart from every now and again when the simulator freezes for in worst cases up to a second as the paging finishes. So 2GB is not really recommendable.The memory usage does not change with CPU or GPU speed. It changes slightly with the amount of T&t threads. The maximum assigned RAM for FSX alone I’ve seen in the task manager is around 2.1GB. That is with 5 T&t loaders. Every T&t thread seems to contribute to around 20MB of extra RAM usage.3GB RAM could possible be enough for FSX but I have not been able to test it. Now let’s continue with the Graphics card:FSX is really CPU demanding over built up areas with loads of traffic. Outside of these areas FSX is really demanding on the Graphics card. Clouds have a big impact on the GPU performance. A lot of low clouds flying low over a forest is when the GPU has to work the most and is most likely to be the limiting factor. I have done testing with both a 8800GTS512 and a GTX470. I have also tried with various overclocking of the GPU. What I found is that the GPU is not affecting the load times. It does affect the T&t loading slightly when we are limited by the GPU but it has a huge impact on stutters and FPS. You get loads of stutters when the GPU is the limiting factor. Not the slideshow type of stutters due to low FPS but quick changes in FPS that looks really jerky as you fly along. The 8800GTS 512 is no match for FSX. It is the limiting factor as soon as you fly away from a big airport or city. Overclocking the GPU helps a bit. FSX responds to Core and Memory clock changes. I have not been able to see any effect of changing the shader clock. Slotting in the GTX470 makes a huge difference. All of a sudden the power of the i7 is unleashed. The stutters disappear and the FPS rockets when flying outside CPU intensive scenery. We are talking FPS that is 3 times higher then with the 8800GTS512. Core and Memory clock on the GPU are still what affects the FSX performance, even with the GTX470. A stock GTX470 is just starting to be the limiting factor when flying low over a vast forest with a scattering of clouds using an i7 at 4GHz with everything apart from traffic (high), water (1 notch down) and shadows (only aircraft cast shadows on ground) to max. I am not sure how much (if any) of the improvements that can be credited to the extra graphics memory available on the GTX470. FSX has only been using a maximum of 636MB graphics memory during my testing even thou it now has 1.25GB available. FSX will make use of more than 512MB of GPU memory regularly. If you don’t have a fast enough Graphics card you can lock the frame rate in FSX to something the Graphics card can handle in order to avoid the stutters associated with being GPU limited. This does however give you the reduction in FPS in CPU intensive areas associated with the FPS lock. The effect of the PCIe bus:What happens if you are only using a x8, x4 or even a x1 PCIe 2.0 slot for your graphics card?It is fully possible to be limited by the PCIe bus. A slow PCIe bus will limit the maximum performance of a GPU. The GPU load will be 100% when it is limited by the PCIe bus. Overclocking the GPU will still have effect but not as much as if the GPU wasn’t limited by the bus speed. The 8800GTS512 doesn’t really need a x16 bus. Using a x8 bus has a less then 5% impact on FPS and not much on the stutters when GPU limited.Using a x4 bus has a lot more impact, around 20% on FPS and it gives a bit more stutters. The GTX470 on a x4 bus does however still perform better then the 8800GTS512 on a x16 bus.The GTX470 is getting limited by a x8 bus when flying low over a forest with an i7 at 4GHz. The impact on FPS is around 15%. So if you are not using a full x16 PCIe 2.0 slot you might actually be limited by the PCIe bus when you are GPU limited. The effects are the same as when limited by the GPU normally with stutters and drop in FPS. Good news is that a faster GPU or GPU overclocking will still help even if you have no possibility to use a full x16 slot. I only tested a x1 bus on the 8800GTS512 and it wasn’t nice at all with hard stutters everywhere. Using a x1 bus did also have a slight impact (less then 5%) on the load time of the game. The x4 and x8 bus did not have any impact on the loading time. T&t loading is affected negatively when we are limited by the PCIe bus. The Hard Drive:I actually started to look in to FSX performance while I was still sitting on an old AMD s939 system around 2 years ago. I was still having that system when I upgraded from my WD Raptor X to my Intel SSD. I didn’t know how FSX was actually running back then and an old K8 Dual Core is not really enough for FSX so I don’t have much useful data from that upgrade. What I can say is that there was a noticeable improvement in load times at high settings and a slight improvement in FPS by going to the SSD.Having an SSD makes the general use of the computer so much better thou, and upgrading to an SSD is my first recommendation on any computer, never mind FSX performance. Summary:FSX is really demanding on hardware. Both the Processor and the Graphics card are really important and can make huge difference in performance. Very simplified the Processor affects min FPS while the Graphics card affects max FPS. Lack of performance from either will induce different types of stutters. Memory bandwidth and timings has a minor impact as long as you have 4GB running in dual channel. Higher Processor frequency gives higher FPS More Processor cores gives slightly less FPS but you can fly faster without getting blurry terrain. A Dual Core Processor with Hyper Threading or a Tri Core Processor is absolute minimum for decent overall FSX performance. FSX can make good use of Hyper Threading. Noticeable especially if you enjoy flying fast over photo scenery. Use the Affinitymask to get best Fibre offloading and to avoid FPS drops during the texture lighting refresh that occur every 61 seconds.Recommended masks:Dual Core=Get a processors with more cores. Dual Core with Hyper Threading=9Tri Core= 5Quad Core without Hyper Threading=13Quad Core with Hyper Threading=249Hex Core without Hyper Threading=61Hex Core with Hyper Threading=4093 Never assign a T&t thread on the same physical core as the main thread when using Hyper Threading. A fast Processor needs to be paired with a fast Graphics card. Otherwise you have to lock the FPS in order to avoid GPU stutters outside built up areas. That is however resulting in a drop in achievable FPS over built up areas and possibly inducing another type of stutters there instead. Clouds are really taxing on the Graphics card When having the FPS locked, lowering FFTF to a value under the standard 0.33 increases the achievable FPS but setting it too low leads to a huge loss in T&t loading, autogen and traffic as soon as FSX can’t keep up with the locked FPS. There is no point in increasing FFTF over the standard 0.33 if you use a multi core CPU. Thanks for taking time to read all of this. I have done over 1300 benchmark runs lasting either 5min or 10,5min each. I have also done free flying over photo scenery and normal scenery so I am basing all this on solid data. I can only thank my Girlfriend for not leaving me during this time. I have spent way too much time testing or terrorizing to use her own words. I’m now going to enjoy life again haha=)I hope my findings can be of help for others.CheersLars

Share this post


Link to post
Share on other sites

Welcome Lars,You poor man! It is a painful thing to have this disease, but generally you can live with it for awhile. Thanks for the info. I will mark it and get back to studing it when I get a chance. Meanwhile, more tests to run!Kind regards,

Share this post


Link to post
Share on other sites
Guest chris493

Lars,First off I would like to warmly welcome you to the avsim forums. We are glad you have joined our community!After Reading this very interesting post, I, on behalf of the avsim staff, and it's many members, would like to thank you for your dedication, hard work and excellent investigation into what makes FSX tick. The work you have put into this is outstanding, and I am sure this will prevent many debates. Congratulations on discovering this mystery program, and we all wish you a very merry Christmas!Kind Regards,Chris B.

Share this post


Link to post
Share on other sites
Guest veeray

Every one should take time out of their busy schedule and see how many additional threads are added to the Taskmanager when FS is loading and idle. Quite interesting really. Next try a webpage and see how many threads are created, I think you'd be surprised a single webpage can potentially contain more :)

Share this post


Link to post
Share on other sites

Fascinating read... I guess I still do not really understand the various fibersand their roles.. but I do know that on my system, when testing over KSEAand PNW scenery (which is my worst case scenery), an Affinity Mask of 14gives me fewer blurries than 13.. So experiment with both if you havea quad core CPU.Q6600@3.2 9600GT512M WinXP32


Bert

Share this post


Link to post
Share on other sites

Interesting - too much info for me to take in with a single read.What I've always been interested in is frame rate variance and stutters - the kind you receive when you have a large fps variance. I have been plagued by high values since I "upgraded" to Win7. Sometimes I'll get over 100% variance... How can fps go from 6 to 60? Is there something I can do to make them more stable? If I lock my fps it only makes flying with Track IR worse - I then receive mega stutters, nearly 1/2 second pauses every time I change my view. It can't be limited to my crappy PC.... I've seen many posters over the years with very high end systems having the same troubles.


| FAA ZMP |
| PPL ASEL |
| Windows 11 | MSI Z690 Tomahawk | 12700K 4.7GHz | MSI RTX 4080 | 32GB 5600 MHz DDR5 | 500GB Samsung 860 Evo SSD | 2x 2TB Samsung 970 Evo M.2 | EVGA 850W Gold | Corsair 5000X | HP G2 (VR) / LG 27" 1440p |

 

 

Share this post


Link to post
Share on other sites

Lars,Welcome aboard and thanks for the outstanding analysis concerning the intricacies of our beloved FSX.Ryan, have you tried the external limiter at at 30-40.The other issue with stutters is directly related to your bufferpools setting. Use the alternative pool setting with fps locked or unlocked.I truly believe that there's a bufferpool setting for every machine.My system with the latest drivers seems to like a small number like BP=90000. Yo still need to try locked fps and see if the sim operates smoother.


A pilot is always learning and I LOVE to learn.

Share this post


Link to post
Share on other sites
Ryan, have you tried the external limiter at at 30-40.The other issue with stutters is directly related to your bufferpools setting. Use the alternative pool setting with fps locked or unlocked.I truly believe that there's a bufferpool setting for every machine.My system with the latest drivers seems to like a small number like BP=90000. Yo still need to try locked fps and see if the sim operates smoother.
With Vista x64 - the external limiter worked like a charm - except in the PNW scenery. Default scenery no issues, track IR worked alright too. PNW in Vista would be blurry even flying at 100 kts. In-game limiter helped but then TIR was very stuttery so it was a lose lose with PNW.Win7 x64 is a different animal. What a PITA this OS has been. Basic settings ###### me off! Like the classic start menu - #####!! Have to download a program to get that back. The way thumbnails are presented... they're either ON or OFF... can't set them to ON in photo files only. Can't get anything right for FSX settings - that darn inspector tool and latest drivers is not working very well at all. TrackIR is super stuttery, 75% of the time, fps locked, unlocked, external locker, doesn't matter. I get a lot of blurries in PNW much like I did with Vista. The external limiter seems to exhibit the same behavior as it did in Vista while running PNW. Helps, but the blurries are still present.I never really understood the BP setting... I was under the impression it was only for use in fast systems...I really wish I had a valid copy of Win XP x64... that probably would have been the best for my hardware.p.s. I've attached my processes tab under system monitor. Anything look out of the ordinary?proceses1.jpgproceses2.jpg

| FAA ZMP |
| PPL ASEL |
| Windows 11 | MSI Z690 Tomahawk | 12700K 4.7GHz | MSI RTX 4080 | 32GB 5600 MHz DDR5 | 500GB Samsung 860 Evo SSD | 2x 2TB Samsung 970 Evo M.2 | EVGA 850W Gold | Corsair 5000X | HP G2 (VR) / LG 27" 1440p |

 

 

Share this post


Link to post
Share on other sites

Your video card is not a bad card at all. I happen to have an old one sitting around. If I remember correctly it ran FSX pretty good. You can't expect to push all the sliders to the right and get smooth flight, but you can disable AI traffic and traffic cars just to see how well the system performs.Bufferpools is driver and video specific. You have to test different values along with texture_max_load values. I recommend that you lock fps in FSX.As you already know, you will have to lower the settings to compensate for the loss in fps. But, you should experience smooth flight with sharp textures.BTW: It would be great if we could assign AI and car traffic to a different processor or core. That would really improve performance.


A pilot is always learning and I LOVE to learn.

Share this post


Link to post
Share on other sites

Great post.Pretty much what I observed too, but I never knew what was behind it all hehe. Memory speed is way overatedTripple channel is a non factorThe GPU only maters at high frames (when you don't really need them anyway if locked at 40 or something) How much antialiasing were you running? I'm pretty sure at 8xS any of the newer cards can handle clouds just fine. Even a GTX260 could suffice with locked frames IMOAlso I never saw that much of an impact on just 2 cores w/o HT, maybe a 5-10% with no more blurs apparently

Share this post


Link to post
Share on other sites

Yes, Great post!! Stated in ways that even I can understand. :Big Grin: I've read about every take on achieving the best performance from FSX with various hardware and this has to be the most simple, straight forward and comprehensive explanation about some of the inner workings of the sim. Many thanks, Lars and Happy Holidays to you.


Regards, Kendall

Share this post


Link to post
Share on other sites

Lars Thumbs up for you mate!!!!! and your dedication.I have one question. You propose

Quad Core with Hyper Threading=249
this means 11111101... I knew that fibers run by default and ONLY to Core0..By putting the 249 mask i occupy core0 with additional job...Shoudlnt we leave core0 free?Thanks

__________________________________________________________________________________________
Elias Stassinos - Author of PTTBuddy - Automatic volume control while you fly / play /stream
My FS Photos - My MSFS Settings - i7-8700K / 32GB RAM / Gigabyte 3070 8GB OC / 1440p

 

Share this post


Link to post
Share on other sites
Lars Thumbs up for you mate!!!!! and your dedication.I have one question. You proposethis means 11111101... I knew that fibers run by default and ONLY to Core0..By putting the 249 mask i occupy core0 with additional job...Shoudlnt we leave core0 free?Thanks
Thanks for all good words everyoneAffinitymask 249=11111001 not 1111101So Core#0=Main threadCore#1=unusedCore#2=fibers should end up hereCore#3-Core#8=T&t loaders

Share this post


Link to post
Share on other sites
Core#2=fibers should end up here
That's what i wanted to find out..Is it possible to move fibers out of core0? I knew that they were runnig there by default..If this is the case then its going to be an improvement for sure !

__________________________________________________________________________________________
Elias Stassinos - Author of PTTBuddy - Automatic volume control while you fly / play /stream
My FS Photos - My MSFS Settings - i7-8700K / 32GB RAM / Gigabyte 3070 8GB OC / 1440p

 

Share this post


Link to post
Share on other sites
Guest veeray

Fibre's are basically threads who's multitasking is controlled by the application. So they have to be on the same core, and you would want them all in the same thread as well. THat's why you can't see fibres in performance manager, the OS isn't aware of them.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...