Jump to content
Sign in to follow this  
Tabs

Graphics corruption in FSX - (UPDATE: possible solution found!)

Recommended Posts

Guest Daniel42

While I was asleep...Argh, it seems I gave up on FSX a few days too early. I will write something more about that in a more appropiate place, but FSX has hardly been on my mind for the last 6 months. And now I discover that Bojote has come up with a fix that seems to make FSX much more (very?) stable for a lot of people.I also noticed that he has tried to get answers from anyone in the FSX team regarding the HIGHMEMFIX setting. Well, to contribute a little to this after all:- Windows 32-bit applications on XP32 can only use 2GB of memory and this memory is available in the address range 0x00000000-0x7fffffff- The upperpart of the range to which a 32-bit pointer CAN point (0x80000000-0xffffffff) is not available- BUT: When XP32 is booted using the /3GB switch an additional additional range above address 0x80000000 becomes availble- AND: If an application is marked as 'LARGE ADDRESS AWARE' it will use this range if needed- On 64 bit operating systems the full address range is available- FSX RTM and FSX SP1 do not have the LARGE ADDRESS AWARE flag set, but FSX SP2/ACC doesSo... FSX SP2/ACC will use the upper memory space if run on a 64 bit OS, or on XP32 with the /3GB switch.What about that HIGHMEMFIX then?First: It is only read from the FSX.cfg by FSX SP2/ACC. FSX RTM and FSX SP1 don't even know about this cfg entry.FSX SP2/ACC will read the flag from the CFG and store it in memory. Then later on it is referenced in two locations, in both cases to the same effect. If HIGHMEMFIX=1, then a certain flag is modified by logically OR'ing it with 0x20000. This flag is used in one case in a call to D3DXCreateEffect() and in the other case in a call to D3DXCreateEffectCompilerFromFile().What is the meaning of the flag? It is actually called: D3DXFX_LARGEADDRESSAWARE and described by MSDN as: "Enables the allocation of an effect resource into the uppder address space of a machine."(One thing I noticed it that the flag is actually documented for D3DXCreateEffect(), but it is not mentioned as an acceptable flag for D3DXCreateEffectCompilerFromFile().)Now why does this flag prevent crashes? Why isn't it enabled by default? Why isn't it even documented? I can only guess that the FSX dev team experienced the crashes and were able to pinpoint it to some extend. The HIGHMEMFIX might have been a workaround, that was never properly verified or accepted as a true fix to the problem. Maybe they expected a DX update would remove the need for the workaround or maybe I'm guessing too much...Daniel van Os

Share this post


Link to post
Guest jjjarvi

I wonder does this HIMEMFIX=1 and other newie tweaks works with FSX SP1?? I have my reasons why I have been only SP1 installed all the time(since feb 2008) and dont even think about change to SP2!! Many best addons like PMDG 744 ,LDS 763 , MADDOG M82 , CLS 747-200/300 works fine with SP1 but thats not the issue. Issue is I have been very stable FSX cfg past 1.5 years with my RIG(QX 9650 ULTRA 8800 WIN XP 32 4GB memory ASUS ROG MAX FORMULA SE 2 MOTHERBOARD) and enough FPS for me with FPS LIMITER FPS locked 31. Also 4/2009 I allready changed that affinitymask=14 very good addon for QX 9650 INTEL processor.Also XP BOOT INI 3GB memory addon and FSX EXE addon programm(I dont remember name) I opened FSX EXE and add that line FSX can handdle more than 2GB memory.I tweaked my FSX very much with help of Nick Needham and now I found so many new tweaks by ******* so I wonder should I try those cause my very pleasent stable system. Why not but are those new tweaks only for FSX SP2???Jukka from Finland

Share this post


Link to post
Guest Daniel42
I wonder does this HIMEMFIX=1 and other newie tweaks works with FSX SP1?? ... Many best addons ... works fine with SP1 ... I have been very stable FSX ... and enough FPS for me with FPS LIMITER FPS locked 31.
The HIGHMEMFIX parameter is only read by FSX SP2 (and acceleration). To say it doesn't do anything for SP1 or RTM is an understatement. I doesn't even exist in SP1/RTM. Bufferpools, Poolsize, Usepools and RejectThreshold are in SP1. Though I would be at least somewhat cautious about tweaking a system that is giving satisfactory performance.Daniel

Share this post


Link to post
some of that 'stuff' is what fixes the dissapearing textures problem.
Hello *******,I am trying to optimize my FSX performance using your suggestions, but I don't really understand what HIMEMFIX does. Is it also used for Windows XP 32-bit platform like I have now for FSX or is it only for Win7? I have an ATI 5770 1GB video card and downloaded and installed your new shader version 3 files today and there is an improvement but I occasionally still get an almost completel disappearing sky and all textures or part of the scenery, sky, airport terminal etc... become geometric blocks. I can't see anything. I can see the panel and cockpit of the PMDG 744 which I use but looking outside the window, nothing. This problem then clears up on its own, and I noticed that minimizing FSX (alt-tab) and them maximizing it also tends to fix the issue. I also get textures on land which don't load very quickly, and are like a pale blue in colour, though they eventually load. They can be seen in blocks in between proper-looking landscapes.Looking at you FSX.CFG file, will this work for WinXP 32-bit and ATI 5770? Just wondering if any of your tweaks are OS specific or not.Thanks.John

Share this post


Link to post
Guest Daniel42
I don't really understand what HIMEMFIX does. Is it also used for Windows XP 32-bit platform like I have now for FSX or is it only for Win7?
For XP32:- If you have 4GB of memory, and- If you have the /3GB switch in you boot.ini and- If you are using FSX SP2 or AccThen putting HIGHMEMFIX=1 in the FSX.cfg will cause FSX to allocate some DirectX stuff in the memory that is usually not available to 32 bit applications on XP. What this exactly fixes... I don't know, but it certainly makes FSX a lot more stable.Daniel

Share this post


Link to post
Then putting HIGHMEMFIX=1 in the FSX.cfg will cause FSX to allocate some DirectX stuff in the memory that is usually not available to 32 bit applications on XP. What this exactly fixes... I don't know, but it certainly makes FSX a lot more stable.
You were very close :) It fixes a 'bug'... RTM and SP1 had a problem with D3DX (the effects component of DirectX, which also includes DirectX Audio btw) The problem, was that FSX (when using more than 2GB memory) crashed and/or corrupted graphics. The very first person to ever report this was 'Phil Taylor' in 2007, see here: http://blogs.msdn.com/b/ptaylor/archive/2007/06/15/fsx-and-win32-process-address-space.aspxLater, MS 'fixed' this bug in SP2, (The D3DX functions required a LARGEADDRESSWARE flag to be passed) and either it was NOT passed OR there was a BUG in the D3DX libraries not recognizing it. It seems that the problem was originally with D3DX as you can see after reading Phil post.In SP2, the correct flag is passed to the D3DX functions but ONLY if HIGHMEMFIX is set to 1. I can only assume that MS forgot to make HIGHMEMFIX a default value OR probably they did it on purpose because they didn't have the chance to test the effects of using HIGHMEMFIX when it was NOT needed (e.g 32-bit OSes running FSX without LARGEADDRESSAWARE flag set) and/or no 3G switch.This, is the particular function causing all the problems when HIGHMEMFIX is not set: http://msdn.microsoft.com/en-us/library/bb172731.aspx

Share this post


Link to post

Welcome back *******


i9 10920x @ 4.8 ~ MSI Creator x299 ~ 256 Gb 3600 G.Skill Trident Z Royal ~ EVGA RTX 3090ti ~ Sim drive = M.2  2-TB ~ OS drive = M.2 is 512-gb ~ 5 other Samsung Pro/Evo mix SSD's ~ EVGA 1600w ~ Win 10 Pro

Dan Prunier

Share this post


Link to post
Guest jjjarvi
You were very close :) It fixes a 'bug'... RTM and SP1 had a problem with D3DX (the effects component of DirectX, which also includes DirectX Audio btw) The problem, was that FSX (when using more than 2GB memory) crashed and/or corrupted graphics. The very first person to ever report this was 'Phil Taylor' in 2007, see here: http://blogs.msdn.co...ress-space.aspxLater, MS 'fixed' this bug in SP2, (The D3DX functions required a LARGEADDRESSWARE flag to be passed) and either it was NOT passed OR there was a BUG in the D3DX libraries not recognizing it. It seems that the problem was originally with D3DX as you can see after reading Phil post.In SP2, the correct flag is passed to the D3DX functions but ONLY if HIGHMEMFIX is set to 1. I can only assume that MS forgot to make HIGHMEMFIX a default value OR probably they did it on purpose because they didn't have the chance to test the effects of using HIGHMEMFIX when it was NOT needed (e.g 32-bit OSes running FSX without LARGEADDRESSAWARE flag set) and/or no 3G switch.This, is the particular function causing all the problems when HIGHMEMFIX is not set: http://msdn.microsof...y/bb172731.aspx
Hi ******* and wellcome backI have FSX SP1 installed and I WILL CONTINUE SIMMING WITH THAT COMPOSITION. I have XP 32 3GB memory added to boot ini and this modification done with CFF Explorer program for FSX EXE:

"After you have downloaded the CFF Explorer program, you will see Explorer Suite in your programs list. Click on Explorer Suite then run CFF Explorer.

  • <Open the FSX.exe file located in \Microsoft Games\Microsoft Flight Simulator X folder.On the left side you will find "NT Header | File Header".Click on "File Header". On the right side click on "click here". Now you need to enable "App can handle> 2gb addressset".
  • Next, click in "File", then "Save".

So can I use that HIHMEMFIX tweak together with SP1 and that manually enable "2GB addresset to FSX EXE??Jukka

Share this post


Link to post
My system has been suffering from sudden FSX crashes when flying the JS41. So far these crashes have ocurred when clicking on the FSX menu bar (ALT+Aircraft) and in one ocassion by clicking multiple times on the RMU to tune it because it refused to tune.
That is a known issue Emilio that happens to many of us, as Grzegorz said set your cockpit details to medium in the J41 config (it only removes visible icing on windows while in VC) and it will fix it. When the next patch for the J41 comes it should be fixed.
Hi PMDG Support,I just purchased the PMDG JS41.Has this issue been fixed or do I need to run cockpit details in medium?I would prefer to have icing effects from VC if it works?Thanks,TobyPS The JS41 is my first Turboprop and so far I've only sat in the cockpit looking around.Wow, what a magnificent job you guys have done, worth every penny!Makes a huge difference to the Twin Engine props that I have been flying.

Ryzen 5800X3D, 64GB RAM, RTX 4090, Windows 10

Share this post


Link to post
So can I use that HIHMEMFIX tweak together with SP1 and that manually enable "2GB addresset to FSX EXE??
read what Phil Taylor wrote back in 2007 (I provided a link) SP1 *if* modified with the LARGEADDRESSAWARE flag (which I believe is not on by default) will eventually user over 3GB of memory in the process, this WILL cause a crash, and the is NO HIGHMEMFIX to help you in SP1 because it didn't exsists yet. HIGHMEMFIX was introduced in SP2 and Acceleration ONLY.

Share this post


Link to post
Guest Daniel42
This, is the particular function causing all the problems when HIGHMEMFIX is not set: http://msdn.microsoft.com/en-us/library/bb172731.aspx
FSX will pass the flag to D3DXCreateEffect() and D3DXCreateEffectCompilerFromFile(), but probably the results of these calls are used in D3DXCompileShader() where the problem would surface.As many have said before: great find!Daniel

Share this post


Link to post
As many have said before: great find!
Daniel, I want to publicly acknowledge your efforts trying to troubleshoot the problems back in April, your initial investigations where the basis of all the things I tried and what helped focus my efforts in the right direction, so, thank you for the help your provided with your debugging and analysis. I tried to contact you, Ryan I think tried as well but you were not available, anyway, what matters is that the problem was resolved and you were a key piece of the puzzle.Thanks again.

Share this post


Link to post

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...