FSX Shader fixes


DX10 Shader Fixes v3.2.2
Dit is een setje shader fixes voor DX10 Preview modus in FSX. Het richt zich op de volgende bugs in de DX10 preview mode:

1) Knipperende startbanen of taxibanen
2) De transparantie van de geel/witte baanmarkeringen
3) Doorzichtige hekken
4) het missen van Progressive Taxi markeringen
5) Het ontbreken van nacht scenery/ semi-transparante schemering scenery (vaak onjuist omschreven als ontbrekende nacht textures)
6) Zwarte koplampen van sommige addon auto’s
7) Zachtere schaduw van de virtual cockpit
8) Elimineert valse zon op VC dak en zijwand

Ook inbegrepen in deze patch zijn een optionele vervangende water schaduw, een aircraft lichtpakket en een optionele vervangende achtergrond texture (bkg.bmp). Dit kan de plaats van lichtblauw DX10 gebruikt en ligt dicht bij wat DX9 gebruikt in dezelfde omstandigheden.

Je kan de instelling van DX10 controleren in de fsx.cfg die te vinden is in  C:UsersjouwnaamAppDataRoamingMicrosoftFSX
in de sectie  [Graphics] D3D10=1 (o= vinkje uit)

In FSX instellen en vinkje zetten bij:d3d101
Settings-Display-Graphics-Global Options- Preview DirectX 10

Het bestanden DX10 Shader Fixes v3.2.2 is te downloaden van onze cloud. Unzip en lees alle readme.txt alvorens verder te gaan.

Source: Steve Parsons. Voor de technische details lees je de dx10-blog van SteveFSX

 

Light Blue Texture


bkg-fsxDe standaard ontbrekende textuur in DX10 is anders dan die in DX9. In DX10 wordt een lichtblauwe textuur gebruikt (zie hiernaast)  terwijl in DX9 dit een zwarte is. Dit is een probleem vooral zichtbaar “add on scenery” die doorgaans getoetst wordt met DX9.  De afwezigheid van een donkere textuur leidt daarmee tot licht blauwe texture flarden. Het licht blauwe texture bestand is genaamd bkg.bmp en staat in de root van FSX.

bkgfsx

Als je deze even binnenhaalt met Irfanview en je een zelfde maakt met zwart is het probleem zo opgelost. De huidige bestandsnaam is bkg.bmp. Hernoem deze naar bkg-fsx.bmp en maak een nieuwe in hetzelfde formaat 1024×768  256//256  24 BPP background color black).

Bewaar het bestand als bkg.bmp in de root van FSX.
Een compleet setje vind je op onze OneDrive als bkg_blue_black.rar

Controleer gelijk even of deze instelling juist is in de fsx.cfg.

[Display]
BLOOM_EFFECTS=0

Deze vind je in: C:/Users/jouwnaam/AppData/Roaming/Microsoft/FSX/

fsx-se.cfg bewerken


Op deze pagina gaan we een aantal instellingen van de fsx.cfg file behandelen die wel of niet of ooit een functie hebben gehad. Maar allereerst wat basics. Er zijn 2 primaire invloeden die een vloeiende presentatie van de sceneries op je scherm beinvloeden:

  1. De hoeveelheid gegevens die jij wil dat het programma schrijft en
  2. In welke mate jouw machine in staat is om de data van de HD of SSD te plukken en in de “rendering machine” te verwerken.

Het doel van het”tweaken” van de fsx.cfg is, om de invloeden die een negatieve impact hebben op de frame rate, te minimaliseren. Niets meer, niets minder.

Waar vind je het bestand fsx.cfg?
Voor het gemak gaan we er even vanuit dat je OS Windows 7/8/10 hebt. Je vindt het bestand op de schijf waar het operating system op draait (c:/) in de folder C:/Users/YourName/AppData/Roaming/Microsoft/FSX/
Voordat je begint te “slopen”, maak eerst even een backup van je bestaande cfg-bestand en voor het gemak, maak even een snelkoppeling van het bestand naar je bureaublad.

Verder behandelen we op deze pagina geen instellingen die je kan vinden op de voorgaande pagina 05 FSX-SE Initial Setup.

[BUFFERPOOLS]

UsePools=1 (met 1 staat ie aan; anders =0)
Poolsize=800000
RejectThreshold=126976 //Wanneer je constant witte of blauwe visuele blokken over je scherm heen krijgt, verhoog dan deze waarde naar 262144
Bekende waardes van hoog naar laag: 524288-262144-126976-98304-65536

Wat doet BUFFERPOOLS en het statement PoolSize. De waarde van PoolSize reserveert een hoeveelheid geheugen om de landscape mesh te genereren. Wanneer je de waarde te hoog zet, dan is het geheugen niet functioneel. Zet je de waarde te laag, dan neemt de harde schijf deze taak over (page filing) met als consequentie dat de frame rate kan gaan”stutteren”. De waarde van PoolSize was met FSX 1st release ingesteld op 1000000, bij SP1 werd dit 4000000 en sommigen zweren bij 8000000 (als 8MB). Het is lastig om de juiste waarde te kunnen vinden omdat deze instelling een interactie heeft met andere parameters zoals Texture_Bandwidth_Mult en Water.

[CONTROLS]

[DISPLAY]

InfoBrakesEnable=False
InfoParkingBrakesEnable=False
InfoPauseEnable=False
InfoSlewEnable=False
InfoStallEnable=False
InfoOverspeedEnable=False

Een aantal tweaks die schermmeldingen uitsluit; het levert niks op, maar dan toch. Een die wel snelheid beinvloedt:

Ook onder [DISPLAY] staat
Texture_Bandwidth_Mult=n
Wat is TBM: dit is een instelling die berekent welke hoeveelheid texture data naar de GPU wordt gestuurd per frame met de ingestelde frame rate. Stel de waarde in juist onder de ingestelde frame rate. Dus als de slider op 30 fps staat, zet je de TBM factor n= 25.
Wanneer deze waarde te hoog staat, loop je de kans dat er grafische corruptie optreedt.  Maximaal is 120. Het minimum is 10.

Dan nog even over Foto sceneries: (NL2000…)
Wanneer er een pure foto scenery is geladen, waarbij er geen enkele texture of landclass is geladen, kan je met een instelling van TBM=300 tot 400. Tevens kan je dan testen of met FFTF=0,5 tot 0.75 betere resultaten gehaald worden.

[GRAPHICS]

HIGHMEMFIX=1
Dit statement MOET in de fsx.cfg van FSX aanwezig zijn. A must have omdat dit door Microsoft vergeten was in SP2
LET OP: NIET toevoegen in de fsx.cfg van Steam!

amd7900fsxcpu[JOBSCHEDULER]:

AFFINITY: wat het is en hoe te configureren. Er is een hoop geneuzel over Affinity Mask instellingen en wat het je zou kunnen brengen. Dit zijn verhalen uit het verleden toen we met FSX nog opgescheept zaten met 1,2 GHZ single/dual procesoren en men verwachtte toen dat als je een of meerdere specifieke core(s) zou toekennen aan de FSX executable, dat het dan allemaal supersnel gaat lopen. Met de huidige snelheden en Intel processoren zoekt je i7-x het zelf wel uit. Kijk maar in het plaatje…geen slapende cores.

Wil je experimenteren, dan is hier het verhaal.
Advies: niet aan sleutelen en niet opnemen in de fsx.cfg
[JOBSCHEDULER]
AffinityMask=0 //for single core machines
AffinityMask=3   //for dual core machines
AffinityMask=7   //for triple core machines
AffinityMask=15 //for multi core machines
Selecteer een van de regels die op jouw -oude- machine van toepassing is.

[MAIN]

Het aanpassen van het AUTOGEN DETAIL LEVEL. Zoek in je fsx.cfg het statement PERFBUCKET=n
De default waarde= 6; Aanbevolen=4 ; Max.=7

Dan nog een lastige die je wel twee keer moet lezen en alleen maar opgaat voor de oude single core machines.

fiberframe[MAIN]
Fiber_Frame_Time_Fraction=0.15

Taken die eenprocessor uitvoert heten “threads” en deze krijgen prioriteit van het OS om uitgevoerd te worden.

“Fibers” gebruiken tijdssloten en worden door FSX gegenereerd om detail van de texture te leveren. Wanneer een  Fiber Time Slots te smal is om de taak te completeren, zie je dat als “blurries ” in het terrein.
FFTF definieert de maximale tijd per frame waarin een fiber taak zal lopen in de primaire thread. De sim timed hoelang het nodig heeft om de simulatie te laten lopen en stuurt dat naar grafische kaart. De FFTF waarde bepaalt de toegewezen tijd aan de fiber. Kijk in het plaatje: wanneer de toegewezen tijd past binnen de ruimte tussen twee threads, is er niets aan de hand. Wanneer de fiber tijd te klein is, dan heeft de fiber te weinig tijd om zijn werk te doen. Wanneer de fiber tijd echter te groot is, dan wordt die fiber vroegtijdig “geleegd” en mis je dus enkele frames en neemt de volgende thread zijn eigen werk over.

Reduceerde  FFTF waarde tot 0,2 of 0,1 en controleer het resultaat. Kijk uit het raam en observeer de stabiliteit van de frame rate. Wanneer de FFTF waarde te hoog is krijg je fluctuaties in frame rate; wanneer de waarde te laag is zie je een ton aan “blurries” in de grond textures…

[TERRAIN]

Scenery objects controleert het aantal bomen en gebouwen in een scenery cel. (1 cell= 1 km x 1 km); De ontwikkelaars van FSX (ACES ) hebben ons geleerd dat  er bij 50 x 1 km square cell per frame een max aantal bomen per cel zijn. (Aantal bomen per cel trees per cel=4500). Zet de slider naar max. en je krijgt 250000 bomen; aanbevolen is 1000 trees en 800 buildings…dat het volgende statement voor de fsx.cfg file maakt. Zet de slider in de midden positie en kijk wat het geeft.
[Terrain]
Terrain_Max_Autogen_Trees_per_Cell=1000
Terrain_Max_Autogen_Buildings_per_Cell=800

Nog een andere onder [Terrain]

LOD_RADIUS=6.500000
Deze instelling compenseert het verlagen van de FFTF waarde en bepaalt je gezichtsveld Level Of Detail vanaf je aircraft (Instellen op default 4.500000 of 5.500000 wanneer er blurries optreden.

Tweaking FSX.CFG


There are 2 primary influences on a smooth presentation of sceneries:
1. How much you want the program writes on screen
2. How capable the machine is in getting data from the hard disk and put it into the rendering machine.

The purpose of tweaking fsx.cfg is to minimize influences that have a negative impact on the frame rate. Nothing more, nothing less!

The file fsx.cfg is located in:
Windows XP:
C:Documents and SettingsYourNameApplication DataMicrosoftFSX
or when you are using
Windows 7/8:
C:UsersYourNameAppDataRoamingMicrosoftFSX

Before making any changes, backup your original file and read this article first.
Tweak 1: Jobscheduler
(for all single- dual- and multi core machines)

[JOBSCHEDULER]
AffinityMask=0 //for single core machines
AffinityMask=3   //for dual core machines
AffinityMask=7   //for triple core machines
AffinityMask=15 //for multi core machines
Select one of the lines which is appropriate for your machine.

Tweak 2a: Settings – Display – Graphics

Remind that all sliders are limiters and NOT to be a predefined setting!

Global Texture Resolution: has little to no impact on frame rate;
Lens flare has little impact on frame rate (box Checked);
Light bloom is a killer for frame rate, so unchecked the box;
Advanced Animations has a high impact on frame rate; Advanced animations controls the drawing of people, animals, etc.
Some aircrafts (PMDG-Aerosoft) require Advanced Animations to be checked, otherwise the fuselage is not drawn properly;
Filtering & Anti Aliasing: AA smooths fagged lines; filtering improves crispness of textures; recommended AA check-box= unchecked;
Filtering = trilinear; use windows control panel to set the graphic card;

Tweak 2b: Settings – Display – Scenery
Scenery objects controls the number of trees and buildings in a cell (1 cell= 1 km x 1 km); The guys from ACES tell us that 50 x 1 km square cell/ frame is max number of trees per cell= 4500: setting slider to max= 250000 trees; recommended 1000 trees and 800 buildings…which makes the following statement for the fsx.cfg file:
[Terrain]
Terrain_Max_Autogen_Trees_per_Cell=1000
Terrain_Max_Autogen_Buildings_per_Cell=800
Set slider in mid position and check;
Terrain and water:
Level of detail radius is the size of the circle that the Sim fills with detail: a smaller circle results in less calculation; recommended setting is medium to small;
Mesh Complexity is the world underneath;
Mesh resolution is the size of the triangles that are drawn; recommended settings is medium;
Texture resolution: the smaller the value, the finer the level of variation; add/change to fsx.cfg the following:
[DISPLAY]
Texture_Bandwidth_Mult=n
n=30 ./, 40 for single and dual core and n=70./.90 for quad core processor machines
This value equals the target frame rate for calculating how much texture data to load into the graphic card each frame;
Set the maximum value just under the fps as required in the game; FPS=30 than TBM=25; the minimum value is 10;

Some other handsome tweaks that disable screen notification:
[DISPLAY]
InfoBrakesEnable=False
InfoParkingBrakesEnable=False
InfoPauseEnable=False
InfoSlewEnable=False
InfoStallEnable=False
InfoOverspeedEnable=False

Add also to fsx.cfg:
[BUFFERPOOLS]
PoolSize=8000000
//@FSX SP1 value =4000000
//@FSX 1st Release value =1000000

The BUFFERPOOL value reserves the amount of memory for generating landscape mesh; setting this argument too high, than is the memory not functional; setting this value too low than the disk is taking over this function (page filing) with as a consequence a stuttering frame rate;

And now a difficult one… read twice to understand:
Fiber Frame Time Fraction
(for single processor machines only!)
This argument is placed in the [MAIN] section of fsx.cfg;

[MAIN]
Fiber_Frame_Time_Fraction=0.33

Tasks that the processor executes, are called threads;
Threads are given priority by the operating system;
Fibers are using time slots and are generated by FSX to figure out detail;
When the Fiber Time Slots are too narrow to complete the task, you end up with blurries in the terrain;
FFTF defines the maximum amount of time per frame that the fiber tasks will be run on the primary thread; The sim times how long it takes to run the simulation and then renders it to the graphics card. This time multiplied by the FFTF value, gives the total time dedicated to the fiber.

If the value is too high, than the fibers get pre-empted by other subsequent threads and thus is unable to do the work and therefore is missing frames;
If the value is too low,than the fiber has too less time to do the work before the next thread takes over.

Reduce FFTF value to 0,2 or 0,1 and check the result; view out of the window, look at stability of the frame rate; when the value is too high you get fluctuation of frame rate, when the value is too low you see a ton of blurries…

ADJUSTING AUTOGEN DETAIL LEVEL:
search in your fsx.cfg the following statement and change if applicable.

[MAIN]
PERFBUCKET=n
Default value is 6. Recommended value is 4. Max. 7