Jump to content
Sign in to follow this  
DAL1850

Interesting Performance Find (VAS and FPS)

Recommended Posts

Guest

The moment you introduce contention, somebody is inevitably waiting on somebody - it doesn't matter who...the result is the same.

 

If you look at more modern games that don't have to maintain legacy support (like FSX does) you'll never see textures not making it to the draw frame/page ... in FSX the render pipeline continues with or without it, doesn't have to be this way, but that's how it "seems" to work in FSX.  Without the source code this is obviously some speculation on my part.  Here is a DX11 render pipeline:

 

 

 

If you look at Steve's work on UsePools and the buffers created: http://stevesfsxanalysis.wordpress.com/2012/05/31/what-is-a-buffer-pool/ you'll see that vertex buffers are being created as "USAGE_DYNAMIC" with "CPU_ACCESS_READ" which doesn't make much sense to me ... maybe this is a DX9 thing?  Dynamic buffers will be slower - CPU needs write access to update.

 

So UsePools=0 appears to setting up DYNAMIC buffers, many more of them because they are dynamic and the PoolSize or RejectThreshold value will not be used/relevant.  So UsePools=0 is slower in performance (requires CPU to update GPU with new data).

 

I'm assuming the "BufferPools" section in the FSX.CFG is specific to Vertext buffers or does it cover Index buffers and/or shader-constant buffer?

 

So UsePools=1 should be a little faster, but I don't understand how you folks are determining a PoolSize or RejectThreshold without knowing the source code or profiling for your specific system (hardware) and/or scene?

 

Rob

Share this post


Link to post
Share on other sites

Steve's analysis appears to be based on the D3D9 rendering chain - a pipeline that underwent significant redesign in DX10/11 (the pipeline you showed above). DX9 was a procedural pipeline. DX10 and 11 are based entirely on GPU shaders. They're very different beasts to code for. It's entirely possible that BufferPools are an optimization intended for the older geometry path and may not make sense under DX10. As I stated in my original post, all my settings (including BP=1) were based on a DX9 pipeline. Under my current setup though, BP=1 is unmistakably a hinderance than a boon. Another wild card in the equation is autogen density. I now disable mine entirely - so how much of this vertex buffer optimization was designed to accommodate massive amounts of autogen in frame? I seem to remember my older graphics adapters buckling with BP=0 and autogen set to Very Dense or higher. Perhaps those pools help consolidate lots of tiny geometries into larger vertex buffers - perhaps reducing the volume of geometry calls (as you would do in DX9). Steve's analysis certainly suggests that possibility.

 

But who really knows? Without seeing the code, it's hard to speculate what's happening. I do think it's folly to try and compare modern games against the relic of a graphics engine that predates FSX itself. It's also worth noting that unlike most modern games, FSX is and always has been CPU-bound...that is, the limiting reagent is CPU processing power. Throwing bigger and badder video cards at it will only tangentially improve things (such as bus latency, memory bandwidth) or let you apply ridiculous amounts of AA and texture filtering without penalty - but it doesn't generally improve the performance of the rendering pipeline.

 

You can theorize this to death. Ultimately, we can only speculate. The only way to really know is to try it, profile the performance in game, and see the result.

Share this post


Link to post
Share on other sites
Guest

 

 


It's entirely possible that BufferPools are an optimization intended for the older geometry path and may not make sense under DX10.

 

DX9,DX10,DX11 all have buffer usage ... agree the "pools" implies some type of repeated optimization keeping groups of buffers available so they don't have to be re-created?  (again guess since we don't have code) 

 

But buffers are still a part of DX10 and DX11 (shader-constant buffers for example) -- it is a different process, but I don't much about DX9 and hopefully will never have to know much about DX9 (the sooner it dies the better).

 

Higher end video cards will improve FSX if you are using SuperSampling which essentially renders the frame at a much higher resolution and then downscaling it to end user's set resolution to achieve the desire Anti Aliasing ... so if folks are using 4x4 SuperSampling, they'll see a real benefit from higher end GPUs.  So high end GPUs do have a place in FSX.

Share this post


Link to post
Share on other sites

It's really a shame that Microsoft elected to go with a strict commercial licensing of the FSX source - especially given the hobby-oriented community that has grown up around the product for over two decades. Doubtful we'd even be having this conversation if they had - we'd all be capitalizing from a DX11.x compliant engine and this talk of buffer pools would be moot. The Microprose Falcon 4 simulator has received years of renewed life after several groups have modernized and extended that engine. The future of FSX isn't over but it's certainly clouded as we appear to have reached a "glass ceiling" with addon's like the T7. I don't think P3D is that future. Maybe X-plane will someday hit me with that "wow" factor, but to date, it has fallen well short of the mark. Meanwhile, Microsoft falls further and further into irrelevancy and looks more and more like the dinosaur, IBM, from whence it sprang.

 

An interesting road ahead. In the meantime, we continue to fiddle with config files.

Share this post


Link to post
Share on other sites

For those of us sporting hex-core processors (i.e. 3930K), would affinity mask >255 work?
For example I believe for hex-core + HT ON, 2644 would select physical cores 2, 3, 4, 5, 6.

Share this post


Link to post
Share on other sites

I just did some monitoring to see what the VAS usage is on my rig. I flew from KLAX north for about 2 hours, and my VAS never exceeded 2.4Gigs. This was with Sim Savvy photo scenery and the RealAir Duke.

 

My system has 16GB RAM, a 770 GTX and Steve's DX10 Fixer.  

Share this post


Link to post
Share on other sites

I noticed something weird.  I have the PMDG777 and megascenery earth as well as ultimate traffic 2 and Rex.  

I run fsx in windowed mode at about 1920x1080x32 (my desktop resolution is 2560x1600). most of my gfx settings are med-high.

I have all shadows turned off, as have light bloom off, dx10 off, 

In the cockpit view at the airport I'm getting frame rates down to 8fps, but usually 12-15.  I have an AMD FX 8350 cpu and Nvidia GTX 760 video card.

 

VAS never goes above 3GB, and Private Bytes/Working set never go above 2GB. (I have 8GB of ram, running Win7 x64).

 

I used Bojotes tweaks and can see that cpu core 0 is mostly idle, and the other 7 cores are utilized between 50-85% (never 100%)

and using GPU-Z I only see 1GB of memory being used (I have a 2GB card), and I never see the GPU go above 60% utilization (usually 40% or so)

 

So I feel  my frame rates are going down even though my system is not being used to the max.  Any ideas whats going on here?

 

here's my gfx settings in fsx.cfg

 

another thing odd is i've noticed I have 4 display.device entries spread throughout my fsx.cfg.  I have 2 monitors.

Does anything stand out as being "out of whack" to you guys?

 

 

[DISPLAY.Device.NVIDIA GeForce GTX 760.1]
Mode=1920x1080x32
[DISPLAY.Device.NVIDIA GeForce GTX 760.0.1]
Mode=1280x720x32
[DISPLAY.Device.NVIDIA GeForce GTX 760.0]
Anisotropic=1
AntiAlias=1
Mode=2560x1600x32
[DISPLAY.Device.NVIDIA GeForce GTX 760.0.1]
Mode=1280x720x32
[Display]
SKINNED_ANIMATIONS=1
TEXTURE_BANDWIDTH_MULT=40
TextureMaxLoad=12
TransitionTime=4.000000
UPPER_FRAMERATE_LIMIT=20
WideViewAspect=True
[JOBSCHEDULER]
AffinityMask=254
 
[bufferPools]
RejectThreshold=131072
[TERRAIN]
AUTOGEN_DENSITY=0
DETAIL_TEXTURE=1
LOD_RADIUS=4.500000
MESH_COMPLEXITY=75
MESH_RESOLUTION=20
SWAP_WAIT_TIMEOUT=2
TEXTURE_RESOLUTION=25
WATER_EFFECTS=4
[sCENERY]
DAWN_DUSK_SMOOTHING=1
IMAGE_COMPLEXITY=3
LENSFLARE=0
MAX_ASYNC_BATCHING_JOBS=3
SmallPartRejectRadius=4.0
[GRAPHICS]
AC_SELF_SHADOW=0
AIRCRAFT_REFLECTIONS=1
AIRCRAFT_SHADOWS=0
ALLOW_SHADER_30=1
COCKPIT_HIGH_LOD=1
D3D10=0
EFFECTS_QUALITY=2
GROUND_SHADOWS=0
HIGHMEMFIX=1
IMAGE_QUALITY=0
LANDING_LIGHTS=1
NUM_LIGHTS=8
See_Self=1
TEXTURE_MAX_LOAD=1024
TEXTURE_QUALITY=3
Text_Scroll=1
SHADER_CACHE_PRIMED_10=1693458432
SHADER_CACHE_PRIMED=1693458432
 
[TrafficManager]
AIRPORT_SCENERY_DENSITY=1
AirlineDensity=0
FreewayDensity=20
GADensity=0
IFROnly=0
LeisureBoatsDensity=20
ShipsAndFerriesDensity=20

 

Thanks in advance.

Share this post


Link to post
Share on other sites

Those additional monitor entries should not be in there.

Along with some other entries that I think you should get rid off.

 

Best thing,

 

Delete this .cfg.

Start FSX en setup you FSX sliders as you desire.

Close FSX.

 

You now have a new .cfg file that you can edit some basic rhings to.

Highmemfix and wideviewaspect=true for example are both recommended by PMDG.

 

Then test fly.

 

After that you can experiment with other tweaks (one at the time) and see what they do for you.

 

Very often: Less is more when it comes to .cfg entries!


Rob Robson

Share this post


Link to post
Share on other sites

I noticed something weird. I have the PMDG777 and megascenery earth as well as ultimate traffic 2 and Rex.

I run fsx in windowed mode at about 1920x1080x32 (my desktop resolution is 2560x1600). most of my gfx settings are med-high.

I have all shadows turned off, as have light bloom off, dx10 off,

In the cockpit view at the airport I'm getting frame rates down to 8fps, but usually 12-15. I have an AMD FX 8350 cpu and Nvidia GTX 760 video card.

 

VAS never goes above 3GB, and Private Bytes/Working set never go above 2GB. (I have 8GB of ram, running Win7 x64).

 

I used Bojotes tweaks and can see that cpu core 0 is mostly idle, and the other 7 cores are utilized between 50-85% (never 100%)

and using GPU-Z I only see 1GB of memory being used (I have a 2GB card), and I never see the GPU go above 60% utilization (usually 40% or so)

 

So I feel my frame rates are going down even though my system is not being used to the max. Any ideas whats going on here?

 

here's my gfx settings in fsx.cfg

 

another thing odd is i've noticed I have 4 display.device entries spread throughout my fsx.cfg. I have 2 monitors.

Does anything stand out as being "out of whack" to you guys?

 

 

[DISPLAY.Device.NVIDIA GeForce GTX 760.1]

Mode=1920x1080x32

 

[DISPLAY.Device.NVIDIA GeForce GTX 760.0.1]

Mode=1280x720x32

 

 

[DISPLAY.Device.NVIDIA GeForce GTX 760.0]

Anisotropic=1

AntiAlias=1

Mode=2560x1600x32

 

[DISPLAY.Device.NVIDIA GeForce GTX 760.0.1]

Mode=1280x720x32

[Display]

 

SKINNED_ANIMATIONS=1

TEXTURE_BANDWIDTH_MULT=40

TextureMaxLoad=12

TransitionTime=4.000000

UPPER_FRAMERATE_LIMIT=20

WideViewAspect=True

[JOBSCHEDULER]

AffinityMask=254

 

[bufferPools]

RejectThreshold=131072

[TERRAIN]

AUTOGEN_DENSITY=0

DETAIL_TEXTURE=1

LOD_RADIUS=4.500000

MESH_COMPLEXITY=75

MESH_RESOLUTION=20

SWAP_WAIT_TIMEOUT=2

TEXTURE_RESOLUTION=25

WATER_EFFECTS=4

[sCENERY]

DAWN_DUSK_SMOOTHING=1

IMAGE_COMPLEXITY=3

LENSFLARE=0

MAX_ASYNC_BATCHING_JOBS=3

SmallPartRejectRadius=4.0

 

[GRAPHICS]

AC_SELF_SHADOW=0

AIRCRAFT_REFLECTIONS=1

AIRCRAFT_SHADOWS=0

ALLOW_SHADER_30=1

COCKPIT_HIGH_LOD=1

D3D10=0

EFFECTS_QUALITY=2

GROUND_SHADOWS=0

HIGHMEMFIX=1

IMAGE_QUALITY=0

LANDING_LIGHTS=1

NUM_LIGHTS=8

See_Self=1

TEXTURE_MAX_LOAD=1024

TEXTURE_QUALITY=3

Text_Scroll=1

SHADER_CACHE_PRIMED_10=1693458432

SHADER_CACHE_PRIMED=1693458432

 

 

[TrafficManager]

AIRPORT_SCENERY_DENSITY=1

AirlineDensity=0

FreewayDensity=20

GADensity=0

IFROnly=0

LeisureBoatsDensity=20

ShipsAndFerriesDensity=20

 

Thanks in advance.

Under bufferpools you wanna set PoolSize=0. For DX10 however, your current setting is fine

 

For Affinity mask, try 14.

 

Verstuurd van mijn GT-I9300 met Tapatalk

 

 

Share this post


Link to post
Share on other sites

thanks Guys.  I tried Rob's suggestion to delete and rebuilt the fsx.cfg from scratch.

 

I don't know, I still seem to not be able to get above 15fps with all my addons and scenery and the 777.

 

I'd be happier to see my CPU and GPU pegged at 100%, and all the video memory getting used (this time it was actually lower, only like 700mb in use).

 

Feels something is in the way bottlenecking that isn't my system.

Share this post


Link to post
Share on other sites

Try disabling UT2 for comparison's sake. Don't get me wrong: I love UT2, but I pay for it dearly. It knocks off a solid 30-40% off my frames even when pared back to 50% traffic density.

 

I also had to part with UTX roads (dunno if you have that or not) - another frame rate slayer. I don't mind so much now that I have significant MSE 2.0 coverage to fly over.

 

Disable autogen if you haven't already (pointless if you have photoscenery anyway).

Share this post


Link to post
Share on other sites

Default autogen isn't normally displayed with photoscenery. On the other hand, ES Treescapes custom autogen makes a huge difference to the realism when flying around UK photoscenery, so my autogen is always set to Extremely Dense.


Christopher Low

UK2000 Beta Tester

FSBetaTesters3.png

Share this post


Link to post
Share on other sites

Mr J (OP), apparently your post has awaken me to have another look into my fsx.cfg and see why on earth my fairly powerful PC was plagued yet again by OOMs. I followed some of your tweak suggestions, dug again at Word Not Allowed's blog and voila. The result is crisp graphics, smooth performance, hours of flying in and out of heavy load airports, photo scenery, traffic and FSInn on top of that. 

It's all down to loading properly the available resources - CPU cores and GPU. The rest is tweaking up the visuals until a satisfactory result is achieved. Last but not least - all rigs are different, for some certain tweaks might work, for some they wont.. It's all down to compiling the correct set of tweaks for the system subject of the tweaking.


 

Regards,

Martin Martinov / VATSIM 1207931

Share this post


Link to post
Share on other sites

thanks Guys.  I tried Rob's suggestion to delete and rebuilt the fsx.cfg from scratch.

 

I don't know, I still seem to not be able to get above 15fps with all my addons and scenery and the 777.

 

I'd be happier to see my CPU and GPU pegged at 100%, and all the video memory getting used (this time it was actually lower, only like 700mb in use).

 

Feels something is in the way bottlenecking that isn't my system.

So you have not added any Affinitymask entries to the .cfg right?

 

And core 0 is not running at 100% ?


Rob Robson

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