Sunday, September 8, 2013

The Rise and Fall of OOM's

[ADX Reader Article] AirDailyX reader Jerome Zimmermann is back once again with a very in-depth article regarding the rise and fall of the various and "dreaded out of memory" issues caused by FSX and P3D. It's always a feeling of Russian roulette when flying with hopes it won't happen. For others, we go out of our way to create crazy flight plans just to avoid flying into a certain area (Seattle or Vancouver anyone?) Here is a very good read about how to cope. We hope you will find the information useful!
ADX>>Updated with editors note and video!

The Rise and Fall of OOM's

Memory has long been the Achilles heel of any software program. You can have the most sophisticated and bug free software in the world, but the minute the program runs out of available memory, it stops working and inevitably…crashes.
When Microsoft Flight Simulator X (FSX) was released in October 2006, getting smooth framerates was a bit of a conundrum. It was very obvious at the time that the available hardware needed to be more powerful, and that the software was unable to fully unleash or exploit its potential due to this. Fast-forward to 2013 and we now pretty much have the reverse. Hardware has caught up in a big way, and performance is now restricted by software. This restriction coupled with faster hardware, has in turn caused many of us to experience OOMs. Let me explain this in more detail, as well as suggest some interesting new fixes.

Back in the early days of PC computing, when DOS was the mainstream operating system, there was a strict 640 KB memory limit. With the introduction of Windows, and other 32-bit operating systems, this restriction was lifted and succeeded by the so-called 3 GB barrier on 32-bit operating systems. PC systems with a 64-bit processor and a 64-bit operating system do not have any such restriction. In a nutshell the 3 GB barrier prevents an operating system from being able to use more than 3 GB of RAM (Physical Memory). To keep things simple and this article focused on flight simulation software, I won’t go in to the various details of how and why Microsoft coded the memory restriction. Suffice it to say that the 32-bit Windows memory limitation is a restriction that 32-bit software programs have also inherited. After all, why would you code a 32-bit program to be able to use more memory than the operating system it is running on can handle.
A 32-bit software program, like FSX and Prepar3D, has a limited allocation of virtual memory or rather Virtual Address Space (VAS), regardless of whether it is running on a 32 or 64-bit operating system. Early implementations of the Windows operating system divided the 4 GB virtual memory allocation into two chunks of 2 GB, with one half being available for applications and the other half being exclusive to the operating system itself. On recent 32-bit Windows versions, such as Windows 7 for example, the 2 GB VAS chunk reserved for applications was extended to 3 GB, with 1 GB dedicated to the operating system (by being marked IMAGE_FILE_LARGE_ADDRESS_AWARE coupled with a /3GB switch in the boot.ini file). On 64-bit Windows versions the 3 GB VAS application space was further increased to 4 GB (through use of a /LARGEADDRESSAWARE:YES option).

If you’re totally confused by now, you’ll hopefully at least have understood the fact that FSX and Prepar3D have a very real and non-negotiable 4 GB VAS limit. To clarify the concept of VAS (Virtual Memory) and RAM (Physical Memory), I propose that you think of RAM as a huge downtown car park and VAS as the number of cars inside that car park. If the total number of cars inside that car park fluctuates, but is limited to and never exceeds a specific total number (4 GB of VAS), it is easy to understand that even a larger car park will still hold the same limited total number of cars. This is the very same reason why more physical memory (RAM) in a computer will not increase the 4 GB VAS limit, the size of the VAS is constant and independent of any higher physical memory size.
If you have not yet encountered an OOM (Out Of Memory) error while using FSX or Prepar3D, you are surely part of a dwindling minority. Over the past few years FSX and Prepar3D have seen an increasing number of sophisticated aircraft and scenery add-ons being released. Weather utilities such a Real Environment Extreme (REX), Active Sky and FS Global Real Weather have been a great asset too in making our flight simulation world even more realistic and adding to our level of immersion. 

I first started using Prepar3D about a year ago and experienced my first OOM flying into Chicago. I had a lot of settings maxed out with the level of detail (LOD) notched at 6.5 and had been pretty happy with the performance on my system. Although I had read of others’ experiences with OOMs, I put this down to unfavorable hardware and general misconfiguration, I had after all never experienced an OOM and had put my system together myself with handpicked components. I revised my settings and did not really encounter any major OOMs until I purchased FS Dreamteam’s Vancouver.

I tried everything, spent hours reading other users’ suggestions and came to the conclusion that I needed to severely downgrade my settings to accommodate my new FSDT CYVR airport add-on scenery. I was disappointed that one add-on had now forced me to change my setup. While reading up on suggestions to fix OOMs, I stumbled upon an article that talked about DX10 fixes. Since I was using Prepar3D exclusively, it did not offer any relative fixes, as Prepar3D makes use of DX9 exclusively.
About a fortnight ago I revisited the DX10 posts that Steven Parson has on his website, and started toying with the idea of tweaking my dusty FSX setup for DX10. My experience has in fact been so overwhelmingly positive, that I have decided to pen this short article to encourage anyone whose FSX or Prepard3D setup suffers from regular OOMs, to give the DX10 fixes, that Steve Parson has made available, a try.
Of course many of you may be skeptical and be asking, how can DX10 fix OOMs? The answer is very simple really. In DX10 Preview Mode the use of VAS is significantly lower (up to 400 MB lower reported by some users) when compared to VAS usage in DX9, so much so that I can load up a complex add-on aircraft with my LOD set to 7.5, turn on FS Global Real Weather and fly into Vancouver without experiencing any OOM whatsoever!
With add-on scenery developers providing us with more and more complex scenery (you only need to look at the soon to be released Drzewiecki Design New York City X / New York Airports X), and FSX and Prepar3D being restricted to 32-bit limitations, the move to a “fixed” DX10 version of FSX to avoid OOMs seems inevitable. Until we get an appealing new flight simulation platform, one that is able to discard current VAS limitations and provide us with a true 64-bit experience, we are stuck with FSX and Prepar3D. And since Prepar3D is currently restricted to DX9, I for one have made the change back to a fixed DX10 version of FSX. I invite you to try it, you’ll be amazed at the results!

As of July 2013, Steve Parson is still working on a commercial version of his DX10 fixes. The aim is to combine all the different fixes into an easy to install package. This of course doesn't prevent you from trying out and applying all the current free fixes he has made available. More details can be found here:


I would like to thanks Steve Parson, Paul J and Kosta for all their hard work and community support. I’m confident that the various DX10 fixes will allow many frustrated FSX and Prepar3D users to experience FSX in a new light, and most importantly, without the dreaded OOM errors.

Written by ADX reader: Jerome Zimmermann


Update with a note from D'Andre:

I also wanted to add my 2 cents here as well. We'll actually, the thoughts below from FrooglePete mirror my own thoughts and experiences as well. So watch the below video and be mindful of programs promising better performance. As it turns out, Froogle and I came across the exact same issue. now Pete is smarter than me so he worked out okay. But for me, I wound up uninstalling my entire sim. Have a look:
_______________________________________
Check us out daily and like us on Facebook!
Others will try. But there's only 1 ADX!
daily news | reviews | first looks | billboard | interviews | comics | live broadcasts

34 comments:

Eponymous said...

Interesting article. I believe progress will be made when DX10 P3D is released and true salvation will come with 64-bit P3D (though the latter still seems to be ages away unfortunately).

Frederik Hagedorn said...

Well he certainly has a point. And I fear that with FTX Global and other new complex scenery software the whole OOM issue will only get worse.

If you add the eagerly awaited PMDG 777 to complex scenery areas, you will surely have an OOM-Smorgasbord :P

LOLOL said...

well i always seen DX10 priview run slightly more smooth as well and hope developers would go that way if there get the fix required to convince them..

Brian Simpson said...

Dx10 preview looks a bit funny & some of the best scenery isn't compatible.

Anders Halstæd said...

Well the whole point is that with these fixes most of the best scenery IS compatible.

I have read that Steve is busy compiling a list of compatible add-ons. Since he has fixed many issues, there should be many sceneries that work.

DX10 doesn't look funny at all on my system btw, I use it too and highly recommend it.

Commander-AUT said...

I just want to add the reason, why dx10 (preview) let us use the full amount of 4gb VAS and why D3D9 wastes it:

http://support.microsoft.com/kb/940105/en-us





greg said...

you can't use AA with DX10 though, so whats the point ?

also, how do none DX10 compatible planes work in DX10 mode ?

JayZee said...

These images were taken today with FSX running in DX10 mode while I was running some tests:

http://www.imgbox.de/users/public/images/GnRrEq9nSF.png

http://www.imgbox.de/users/public/images/GgkDEJhGB4.png

http://www.imgbox.de/users/public/images/2Ie38Mzxld.png

I can assure you that much of what was broken in DX10 Preview Mode a few years ago now works flawlessly. If you give it a try, you will most likely feel that you're using a brand-new sim!

As mentioned above, the whole point is that these fixes have made a lot of popular add-ons compatible.

Dave Boeing said...

I just spent $15 dollars on a copy of FS9. I downloaded my UK Scenery and Fly Tampa sceneries (as they had FS9 download available when I purchased them)and purchased a Ground Environment Pro. Yes, your right the graphics are not as polished, but 50FPS anywhere in Level D and even PMDG 747 and IFly 737....WOW!!! So for under $200 dollars even my wife is happy with me. I did not get to enjoy such smoothness flying FSX ever! Now it's just a pleasure. Pleasure.....and that's what it's all about!!!!

Jason Mableton said...

Great article and superb screenshots...is that the new Flight1 B200?

The traditional "old" method of AA never worked in DX10, but the new ATI and NVIDIA drivers will make full use of a DX10 compatible graphics card and use modern anti-aliasing technology accordingly.

JayZee said...

Thanks and yes, it's the new Flight1 King Air B200. I can assure everyone that AA works in DX10 mode, the above screenshots bear testament to that.

Greg said...

JayZee - What exactly is needed to make DX10 work with AA and such nowadays ? I have a 3770k and a gtx 670
can you perhaps write to me what settings are you using in both in-sim and in the GFX card driver settings. please ?
Thanks in advance,

Greg.

peter said...

can any body tell me what difference dx11 will make to P3d .if dx10 makes such a big diff to FSX surely dx11 will result in a greater improvement in P3d ,I believe P3d is being worked on to improve it,s faults now ,where any issues with fsx will remain as is warts and all (silk purse out of sows ear },if you follow my logic

adi518 said...

as of now steve's fixes work, but you do encounter annoying scenery glitches, because not everything is fixed/compatible.

I think we should all stop this race and just wait for p3d 2.0, which hopefully redeems all of these problems.

Aaron Graham said...

Dx11 is just a bug free/tweaked version of Dx10. Dx10 was a rewrite from ground-up for Windows Vista with Dx11 improving it and fixed bugs, nothing as spectacular as Dx10.

Anders Halstæd said...

To me the whole OOM issue is more than annoying, as it instantly stops Prepar3D from working.

What race are you referring to?

I think that you'll be in for quite a surprise with Prepar3D v2, as in:

Have you thought about the fact that every Prepar3D add-on currently available will not work with v2?

JayZee said...

Hi Greg,

I used the following settings:

NV Inspector
http://www.imgbox.de/users/public/images/1senVK7afi.png

fsx.cfg
http://www.imgbox.de/users/public/images/HBbug9LQXh.png

It's important that the MultiSamplesPerPixel and MultiSampleQuality number matches the NV Inspector Antialising and Transparency Supersampling settings, meaning that if you use 4xS and 4x SGS then you need to use 4 in the config file.

In FSX make sure you select AA on with Anisotropic. There is a fantastic document by Paul J that outlines all the settings:

https://dl.dropbox.com/u/52676345/DX10_Fix/Notes/DX10%20Notes.doc

Good luck and I hope you too discover the joy of an OOM free sim!

Jerome

Frederik Hagedorn said...

For all we know Prepar3D 2.0 is months or years away. Sure, LM have talked about a 2013 release, but it may only be next year, as software development almost always takes longer than anticipated.

And as Anders has said, all add-ons will most likely have to be made compatible with v2.0, just as FS9 scenery doesn't work in FSX or Prepar3D.

It seems that the DX10 Preview mode that Microsoft left us with in such a broken state, is finally getting repaired through Steve's amazing fixes.

I can only agree that with high quality scenery putting more and more of a load on memory resources, DX10 is definitely the way to go to avoid OOM problems.

adi518 said...

I don't see why most fsx addon which are currently p3d compatible, won't work in p3d 2.0. I will still use dx9, only 64-bit support will fix all oom issues. I mean, there's no need to go through the process of making dx9 add-ons fit to dx10. Dx9 is still widely used in many other games.

Frederik Hagedorn said...

Using your logic FS9 add-ons should be compatible with FSX then, but they aren't. I highly doubt that add-ons will be compatible off the shelf without any modification.

Prepar3D 2.0 will be DX11, not sure what you mean by DX9.

And saying that "only 64-bit support will fix all oom issues" is simply not true. What do you base this on? The fact is that even DX10 Preview Mode in FSX gets rid of all OOM issues at present, and does all that in a 32-bit environment.

ALX WNT said...

DX10 Preview Mode is temporarily solution to actual problem. 4GB limit is still there. Think DX9 as winrar, DX10 is winzip or KGB archiver that's it. You still have 4GB external USB to put your files in. Hence you have that limit, you use Winzip or better compression method to use this space more efficiently. That's what DX10 P. Mode.

If P3D V2 comes with native 64bit support, or separate edition, this means there wont be any VAS limit or if there will one it'll be 64GB or limited according to your hardware (meaning how much RAM you have or does your Mobo support all this RAM madness etc.)

The fix... Yes, the AV*** fix works pretty well with ORBX products, normally those ones doesnt support DX10, but they work well now. There are problems with grass though, make sure you disable grass from control panels of your orbx products.

Also, i still dont like water and it's fix, should've been better but better than nothing i guess.



JayZee said...

Yes, 64-bit will be the ultimate cure, LM have however neither confirmed nor denied that this is on their product roadmap, so at present all we can do is speculate.

I don't experience any grass problems myself:

http://www.imgbox.de/users/public/images/GnRrEq9nSF.png

Frederik Hagedorn said...

ALX WNT - the article already explains the VAS limit.

What is worth mentioning is that the way the textures/shaders are made in FSX native code also means the scenery takes more GPU memory. However, since under DX9 the GPU allocation is copied into the user RAM, the more a scenery uses the GPU, the more VAS will be used too. When you have many add-ons running at the same time it's therefor better to use DX10, as the GPU allocation is handled differently.

Richárd Dobos said...

My problem is that using Steve's fixes AI and static aircrafts are still wighout textures. (Using glbal ai traffic 2.07 at FB KIAD)

greg said...

any chance for a step by step installation assistance for people who don't know much about computers, please ?>

Anonymous said...

The main reason for OOM's is pushing FSX past it's limits, tweaks such as using HD textures will almost always cause OOM's eventually because the VAS limitation never changes. The HD textures tweak was never intended because the sliders cannot apply it themselves and I have never had an OOM without the tweak applied. FSX was not designed to be pushed this way and the consequence is the OOM which they knew would happen hence the tweak not being available on the sliders. If P3D went 64bit i imagine FSX will be completely destroyed because it would have no purpose and developers would soon make the switch if the customers are there. I haven't made the switch yet because i strongly believe P3D right now is the same as FSX and anything else performance wise is mostly placebo. P3D going 64bit though is pretty much the future of flight simulation.

Anders Halstæd said...

For all of you experiencing the DX10 daylight black runway light boxes with the Kastellorizo (LGKJ) scenery from FSDG, I just saw someone posted a fix on their forum:

http://forum.flightsimdevelopmentgroup.com/viewtopic.php?f=3&t=1885

The fix is available here for download:

https://mega.co.nz/#!2JBFHaQI!Y0ndG2xcDtehXitf1yDXEzWLUypLKylW3ZA74LJssEk

As this is one of the best and newest sceneries in that area, I thought I would share this info here.

Anders Halstæd said...

Yes, as posted above already, you need to read this document by Paul J:

https://dl.dropbox.com/u/52676345/DX10_Fix/Notes/DX10%20Notes.doc

Frederik Hagedorn said...

OMG I can't believe someone managed to fix that! That's one of my all time favorite airport sceneries :-))))))

Thanks for the heads-up on this!

MilvizJB said...

FWIW the C++ code for DX10 and 11 are almost identical. Mostly the only differences are 11s and 10s in the class names. Both are based on DXGI which actually allows textures and other data to be shared between the 2 easily.

Adi Sahar said...

Hey guys, there's an update from Steve!

He posted a new query 2 days ago on his blog and the dx10 fixer app is finally ready.. he's just trying to figure how to sell it: http://stevesfsxanalysis.wordpress.com/2013/09/06/status-update/

Bradley Thomas said...

I get the best performance using Nicks guide on Flight1...super good results, i followed what was recommended on this youtube clip from Froogle....i got rubbish results...
This worked for my setup like a dream
http://www.simforums.com/forums/different-scenarios-different-settings-thats-how_topic41798_page1.html

evercllear said...

Does Nvidia inspector need to be running such as minimized or in tray during flight or do you still get the optimization even when it's not.

Chris Strobel said...

Same here. NickN's been my best results yet.

Post a Comment

Comments are now deactivated. Please visit our new website: AirDailyX.net

Note: Only a member of this blog may post a comment.