Sign in to follow this  
dukeav

VAS / OOM and Textures

Recommended Posts

Many third-party airplanes today are shipping with 4k/2k textures. While we can debate its usefulness to no end, the fact remains that they are quite memory intensive. 

 

There are ways to reduce texture sizes and mip them, but I came across an easy tool which makes it a breeze, http://www.nexusmods.com/skyrim/mods/12801/?, developed by AdPipino for Skyrim and other games. I let this program run through my airplanes folder, to reduce texture size to 1k and mip them also, and then I measured the results. 

 

All tests were done on runway at supposedly the most isolated airports in the world, Mataveri International Airport / SCIP. All situation were loaded after fresh start of P3D from saved flights. After loading I panned/zoomed around in both VC and spot view, measured VAS using ProcExp and GPU using MSI Afterburner.

 

While VAS and its effects we all know, I am not sure about GPU memory and its effects, but I still measured it. GPU experts can chime in.

 

 

depxtm1p8kc0dhh6g.jpg

 

System Specs: i7-4700MQ @ 2.8, 16GB 1866Mhz Ram, 755M SLI 2GB DDR5, 128+512GB SSD

Settings of note: FFTF=0.0, AM=244, TEXTUREMAXLOAD=27, TEXTURE_MAX_LOAD=1024

 

Observations:

 

We are saving about 150-300MB VAS, depending upon the Airplane.

 

None of these aircraft had mips in their original textures. Some have 4k textures, some 2k.

 

You might think that just by selecting 1024 as texture size in the P3D settings, it might reduce memory load. But this is not true as you can see above. This maybe because, none of the original textures are mipped, my guess. So if you want you can choose not to reduce the textures, but just mip them. I have not tried this. 

 

After reduction, I did not see any visual difference.

 

There were no FPS differences between the textures sizes, so this does not do anything for FPS performance.

 

The B1900D has shimmer in the cockpit controls with the original textures, but after reducing/mipping there is no shimmer :smile:

 

 

So how can you do it easily?

 

1. Make a copy of the Airplanes folder in SimObjects directory. Let the copy be in the SimObjects folder itself.

 

2. Run Ordenador tool (link above), and select the folder copy you just made. And other settings as below

 

sddnh213kfb46hw6g.jpg

 

Also in the More/Extras tab, un-select backup option, as we already made a backup.

 

3. Click Start and wait for 10-15 minutes for it to finish. (You may have to confirm the no backup and reduce textures options in the subsequent dialog prompts)

 

4. After finishing, I suggest you copy the log window and save it as text for future reference if need be. 

 (for me the original folder size was around 21GB and it came down to 10GB after reduction)

 

5. Rename the original Airplanes folder to something like "Airplanes_ORIGINAL".

 

6. Rename your folder copy to "Airplanes"

 

You can switch back and forth between original textures and reduced ones just by renaming the folders in future. 

 

 

I also want to try out the new BC6/BC7 texture formats supported by DX11, but the conversion speed is pretty pathetic with the tools today. Maybe in the future.

 

Mega Airport experiments are next up, till then just imagine the savings!

 

 

Edit: I just realized that the textures more than 1k and being cut in half, but not cut to 1k. E.g. 4k texture becomes 2k, 2k becomes 1k. So finally we are left with 4k converted to 2k. If we run tool one more time, it should convert the 2k (4k originally) down to 1k also. So more savings!

Share this post


Link to post
Help AVSIM continue to serve you!
Please donate today!

Very good tutorial !

Thank you very much.

 

Keep us informed regarding the airports.

Share this post


Link to post

Duke, That looks very promising.

 

Can this work on all textures in the sim?

Share this post


Link to post

Very good tutorial !

Thank you very much.

 

Keep us informed regarding the airports.

 

Welcome! Job for the next weekend if I can hold the tweaking urge.

Duke, That looks very promising.

 

Can this work on all textures in the sim?

 

I think so, the adventurous can let it run on the P3D folder itself!

Share this post


Link to post

 

 


I think so, the adventurous can let it run on the P3D folder itself!

 

That sound like a challenge Duke! :lol:

 

maybe I will try BC6/BC7 texture formats on the entire P3D Folder :lol:

Share this post


Link to post

That sound like a challenge Duke! :lol:

 

maybe I will try BC6/BC7 texture formats on the entire P3D Folder :lol:

 

Well, we are waiting then ;)

 

BC6/BC7, I am going to guess, is going to take a few weeks to convert. A single 1k texture conversion itself was taking 10-15 minutes.

Share this post


Link to post

BC6/BC7, I am going to guess, is going to take a few weeks to convert. A single 1k texture conversion itself was taking 10-15 minutes.

 

I'll make a backup of the entire P3D folder and convert it as per your instructions.

I assume the program won't just convert the textures in the selected folder. It will also

go down through the sub-folders within that folder?

It might take a few hours right? I will start it tonight before I go to bed and hopefully it will be done by the time

I get home from work on Monday.

 

If it goes well I will Copy the P3D Folder to another computer and Run the BC6/BC7 conversion

and leave it running for however long it takes or better still brake it up into sub folder and run conversions overnight

on my much faster FS system.

Share this post


Link to post

What do the textures look like though? There's a reason devs stepped up from 1024 hehe

Share this post


Link to post

I'll make a backup of the entire P3D folder and convert it as per your instructions.

I assume the program won't just convert the textures in the selected folder. It will also

go down through the sub-folders within that folder?

It might take a few hours right? I will start it tonight before I go to bed and hopefully it will be done by the time

I get home from work on Monday.

 

If it goes well I will Copy the P3D Folder to another computer and Run the BC6/BC7 conversion

and leave it running for however long it takes or better still brake it up into sub folder and run conversions overnight

on my much faster FS system.

 

This tool does not do BC6/BC7. It will only do DXT5 max and that does not take time. The 20GB aircraft took 15-20 mins, so whole P3D, may an hour or two?

 

The only available tools I found for BC6/BC7 are VS 2012/13 and DxTex. VS 2012/13 conversion is CPU based and takes more than 30mins for small texture itself, If I recall correctly. DxTex does it on GPU, so much faster than VS.

What do the textures look like though? There's a reason devs stepped up from 1024 hehe

 

They looked perfectly fine to me, even quite close up. But then, as they, it lies in the eyes of the beholder...

Share this post


Link to post

The difference between 4096 and 2048 IMO is miniscule and virtually indiscernible. The difference between 1024 and the HD textures is only marginal and again IMO which is entirely experienced based with no technical knowledge to it at all is that the price for HD textures is high for the small Improvement in image quality. I like like a balance between my sliders to the right and FPS and there is no question about it that HD textures will get you into OOM territory much quicker than SD textures. So its a choice between HD textures and slider a bit to the left or SD textures and sliders to right. I choose the later.

 

 

 


DxTex does it on GPU, so much faster than VS.

 

I'll try to do this with ES IOM and see if I can bench mark it.

Share this post


Link to post

I'd be very curious about how this works with scenery textures.  I have a couple of sceneries that I've been suspicious about in terms of their textures...whether they're optimized.

 

Gregg

Share this post


Link to post

Great thread and definitely agree with you on how adding mips to textures are great for performance and reducing VAS. I still don't understand why most aircraft developers make their textures non-mipped.

 

Why not at least provide both mipped and non-mipped versions and let us decide which ones to use.

Share this post


Link to post

Great thread and definitely agree with you on how adding mips to textures are great for performance and reducing VAS. I still don't understand why most aircraft developers make their textures non-mipped.

Mostly because when viewing from spot view, depending on the initial view distance, the a/c will be displayed with the first MIP, which typically is rather blurry. One then has to zoom very close for the full texture to load and be displayed.

 

In addition, the second MIP level won't be shown until the view distance is >2,000'. How often would you ever view the a/c from that far away?

 

In short, this was determined many years ago, and at that time much effort was devoted by users to get rid of MIPs entirely to eliminate the problem! It appears we have now come full circle... :LMAO:

 

MIPs were designed to be mainly used for AI aircraft and scenery models, where the different view distances will produce the greatest effects.

 

For interior (vc) textures, MIPs are totally useless. The only thing that changes is that the texture sizes are increased slightly for no gain or advantage whatsoever.

Share this post


Link to post

Mostly because when viewing from spot view, depending on the initial view distance, the a/c will be displayed with the first MIP, which typically is rather blurry. One then has to zoom very close for the full texture to load and be displayed.

 

In addition, the second MIP level won't be shown until the view distance is >2,000'. How often would you ever view the a/c from that far away?

 

In short, this was determined many years ago, and at that time much effort was devoted by users to get rid of MIPs entirely to eliminate the problem! It appears we have now come full circle... :LMAO:

 

MIPs were designed to be mainly used for AI aircraft and scenery models, where the different view distances will produce the greatest effects.

 

For interior (vc) textures, MIPs are totally useless. The only thing that changes is that the texture sizes are increased slightly for no gain or advantage whatsoever.

Agree, I am not sure mips are doing anything here, just reducing overall texture size helps with VAS.

 

There was another thread in here which said mips were not really working FSX, but fine in P3D. So mips may still be used correctly in P3D, but since there is anyway no performance gain, it may not be of much help.

Share this post


Link to post

If you reduce size of files, you always cut into the detail of the testures, I have no doubt about that. But on the other hand, with the level of detail we have available now, I wouldnt mind letting a little slip in trade of performance. If the result is satisfying in the eye of the beholder, it fine, I guess.

I'm runing 4096 textures and I'm pretty spoiled when it comes to that, also with most aircraft I fly, but I wouldnt mind taking my chances and doing some tests.

 

I'll make some time for it tomorrow and I'll report back with the results.

Share this post


Link to post

Just out of curiosity, is it illegal to run textures through this or any other converter for personal use? I ask because I tried to add mipmaps to a set of textures to a 3rdparty Aerosoft A319 American Airlines livery and I was treated like scum for trying to do so with the explicit permission of the author of the livery. All we are doing is adding mipmaps or reducing the file size. Something that has been done ad nauseum since the heydays of FSimming.

Share this post


Link to post

I that case I won't tell you guys what I converted using the outline provided by Duke, But I will tell you this the Airport had alot complaints about OOMS when it was released a few months ago and the scenery for an entire island nation was exposed as the worst this particular well known Scenery maker ever produces. I happen to agree with all of that.

 

I made a recoding of a flight in the excellent Milviz 407 over the airport and surrounding area for about 10 mins. I took the time to make sure all but the scenery I was using was inactive in the scenery library and in the proper priority. Also I cleared all weather and traffic so more or less only the 2 scenery packs where in play and I set textures to 1024.

 

With the rest of the settings in fact lower than I usually use around international airports beside a big city with weather and plenty of AI traffic I still got an OOM with this scenery.

 

First this test I just added FFTF=0.01 and that cured the OOM but not the ping of death. I got that 5m40s in. Next I converted the Airport textures using the method above. File size was 1.73GB and After conversion it was 1.18GB. Played the flight again still got the Ping off death but not until 7m50s in.

 

I then converted the whole county and I have to say that the vast majority of the lines in the log read "Error: Direct3D device faill
Error: DirectX D3DXERR_INVALIDDATA" but it nevertheless converted some files.

 

The size before was 3.4gb and after 3.24GB  Nothing much changes in the playback of the flight except there was an early random Ping of death and then another random one.

And then the first in stream of persistent pings of death but i haven't timed it to see if it came later than 7m50s in.

 

One other thing. I think I noticed a slight FPS increase. I will tabulate it later to see if I imagined it!

Share this post


Link to post

On this graph you can see that FFTF=0.01 really shows its value by dogging the OMM. Altering the textures of the airport as per Dukes instructions does seem to delay the Ping of death even longer. And then altering the textures of the whole country does delay the persistent ping of death although as you can see in the graph there where a couple of isolated pings before the persistent pings started and then only for the last 30 seconds of the flight.

 

I sure would to try the DX11 compatible formats but I swimming in deep water here. Any suggestions much appreciated:-)

 

AlteredtexturesBenchmark.png

Share this post


Link to post

Just out of curiosity, is it illegal to run textures through this or any other converter for personal use? I ask because I tried to add mipmaps to a set of textures to a 3rdparty Aerosoft A319 American Airlines livery and I was treated like scum for trying to do so with the explicit permission of the author of the livery. All we are doing is adding mipmaps or reducing the file size. Something that has been done ad nauseum since the heydays of FSimming.

I just searched and found plenty of threads on resizing. I don't see any issue...

Share this post


Link to post

Pretty handy, thanks. Some of the aircraft that I have with 4096 textures are Dino C's planes, ORBX Vans RV4 and A2A planes like the C172 and Cherokee 180. Some Carenado planes like the Skylane 182 are also 4096. As others have said, setting the texture size to 4096 in P3d instead of 1024, makes very little difference in IQ to me, at least.


I just searched and found plenty of threads on resizing. I don't see any issue...

 

 

Well, yes and no. It isn't "illegal" unless you resize and then distribute the converted textures to other people. But if you resize your own textures and then ask the aircraft's author for support, well, good luck on that.

Share this post


Link to post

On this graph you can see that FFTF=0.01 really shows its value by dogging the OMM. Altering the textures of the airport as per Dukes instructions does seem to delay the Ping of death even longer. And then altering the textures of the whole country does delay the persistent ping of death although as you can see in the graph there where a couple of isolated pings before the persistent pings started and then only for the last 30 seconds of the flight.

 

I sure would to try the DX11 compatible formats but I swimming in deep water here. Any suggestions much appreciated:-)

 

AlteredtexturesBenchmark.png

Well the results are encouraging.

 

I think one thing we need to check is if we really need mips in airplane textures, then we can reduce airplane textures load by another 30% by removing the mips.

 

For the scenery textures, did you see what were the original sizes? And it would be worthwhile to explore why many could not be converted in your case. Also I think using 512 textures for scenery would help a lot, but the visual quality aspect needs to be seen.

 

BC6H/BC7 question is beyond me also. There many aspects of textures like alpha, light maps, HDR, which we have consider before choosing a conversion format or even to decide if BC6/BC7 are even appropriate. I do not know much about these aspects.

Share this post


Link to post

Are you sure how that app works? I ended up with mipmapped files with a lot of different sized maps, when the original only had 4096. Of course, I did two passes. Here's a jpg showing a converted 4096 file:

 

https://dl.dropboxusercontent.com/u/5379637/Mipmaps.jpg

 

I'd say one pass is enough. That should give you 2048, 1024, 512 and 256, or something like that.

Share this post


Link to post

Are you sure how that app works? I ended up with mipmapped files with a lot of different sized maps, when the original only had 4096. Of course, I did two passes. Here's a jpg showing a converted 4096 file:

 

https://dl.dropboxusercontent.com/u/5379637/Mipmaps.jpg

 

I'd say one pass is enough. That should give you 2048, 1024, 512 and 256, or something like that.

 

That's looks to be a correct mip-mapped image. The left most square should be 2048*2048. What do you think is wrong? You did not want mips?

 

 

Edit: The final reduction size would be determined by choice in the tool. So if you selected to re-size textures more than 1k then the lower sized textures (512, 256) should remain unchanged in size, with only mips added.

Share this post


Link to post

I've been doing this since back in 2008 when I first started using FSX having come from FS9.

 

I didn't know a thing about texture sizes or mips until I started working with the late Michael Greenblatt and he explained how large texture sizes and mip maps effect performance.

 

Since then, the first thing I do when I purchase a scenery and install it is to go right to the texture folder and check not only the size of the texture sheets, but also the compression, ie. DXT or 32bit.

 

Anything larger than the standard 1024 gets resized back to 1024 and put it DXT format if it wasn't already and mip maps added. Although I never had an automated tool to do it and have always done it manually using a variety of tools to make sure I didn't screw up the alpha channels if they were included.

 

I do the same for planes exterior textures, make sure to mip all AI, and don't use cloud or water textures over 1024 size sheets.

 

Having said this, I used to run FSX for years on Win XP 32bit, and even running the NGX into complex airports with AI, never suffered and OOM. These days I run Win7 64, and still follow the same protocol and have never suffered an OOM in 6 years.

 

I agree that while 2048 or larger textures in airports do look a touch crisper and clearer, the amount of extra memory consumed and associated problems that can arise aren't worth the hassle. I don't find that 1024 sized textures look that much different and give me piece of mind knowing that I won't OOM on approach after a long flight.

 

I will note however that in some cases developers use 4096 or 2048 sized textures sheets on purpose to cram more textures into one sheet to reduce draw calls. In this case I leave them alone since they make sense. An example is FSDTs KLAX where they do this and use just a few 4096 texture sheets rather than many 1024 sheets to reduce draw calls and memory usage. Other devs will purposely use a large amount of 4096 sheets just to make it look better but will OOM you before you can blink. Anyone using some of the older ORBX large airports in Australia will remember this.

Share this post


Link to post

That's looks to be a correct mip-mapped image. The left most square should be 2048*2048. What do you think is wrong?

One pass is enough. The image that I linked previously was from two successive passes, The largest resulting image was 1024. One pass on a non-mipmapped image at 4096 yields 2048 plus all the smaller images.

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