Jump to content

[1.0][Release-5-0][April 28, 2015] Active Texture Management - Save RAM!


rbray89

Recommended Posts

I am on a mission to reduce the enormous amount of logging that is being dumped by various mods into KSP.log. I don't necessarily mean to remove log entries (it is not my place to decide who wants to see what), but to reduce the number of lines of logging so that people who are monitoring logs (like with tail -f) don't have so much possibly useful information slip by.

One of the offenders that I targeted early (because I already had a development environment setup for it) is this mod. One of the simplest changes is to shorten the logging header from ActiveTextureManagement to ATM.

One of the others is to change the ordering and field labels for the texture information dump, so that there is one line per texture. I also use tabs (ick?) to make all of the fields line up in columns. This does not persist to copy/pasting into the forum, but at least it's nice on the screen.

Is this something the mod author is interested in? If so, what changes should I make before providing a patch?

-tg

Here is an example output of the 'after':


[LOG 22:59:38.328] AddonLoader: Instantiating addon 'ActiveTextureManagement' from assembly 'ActiveTextureManagement'
[LOG 22:59:38.328] ATM: --------------------------------------------------------
[LOG 22:59:38.328] ATM: DXT5 (1024x1024) mipmaps: 11 readable: True name: BoulderCo/Clouds/Textures/detail1
[LOG 22:59:38.328] ATM: DXT5 (1024x1024) mipmaps: 11 readable: True name: BoulderCo/Clouds/Textures/detaileve1
[LOG 22:59:38.328] ATM: DXT5 (2048x1024) mipmaps: 12 readable: True name: BoulderCo/Clouds/Textures/duna1
[LOG 22:59:38.328] ATM: DXT5 (2048x1024) mipmaps: 12 readable: True name: BoulderCo/Clouds/Textures/eve1
[LOG 22:59:38.328] ATM: DXT5 (2048x1024) mipmaps: 12 readable: True name: BoulderCo/Clouds/Textures/jool1
[LOG 22:59:38.328] ATM: DXT5 (2048x1024) mipmaps: 12 readable: True name: BoulderCo/Clouds/Textures/joolLayers1
[LOG 22:59:38.328] ATM: DXT5 (2048x1024) mipmaps: 12 readable: True name: BoulderCo/Clouds/Textures/joolLayers2
[LOG 22:59:38.328] ATM: DXT5 (8192x4096) mipmaps: 14 readable: True name: BoulderCo/Clouds/Textures/kerbin1

Well, what does one think?

Link to comment
Share on other sites

I am on a mission to reduce the enormous amount of logging that is being dumped by various mods into KSP.log. I don't necessarily mean to remove log entries (it is not my place to decide who wants to see what), but to reduce the number of lines of logging so that people who are monitoring logs (like with tail -f) don't have so much possibly useful information slip by.

One of the offenders that I targeted early (because I already had a development environment setup for it) is this mod. One of the simplest changes is to shorten the logging header from ActiveTextureManagement to ATM.

One of the others is to change the ordering and field labels for the texture information dump, so that there is one line per texture. I also use tabs (ick?) to make all of the fields line up in columns. This does not persist to copy/pasting into the forum, but at least it's nice on the screen.

Is this something the mod author is interested in? If so, what changes should I make before providing a patch?

-tg

Here is an example output of the 'after':


[LOG 22:59:38.328] AddonLoader: Instantiating addon 'ActiveTextureManagement' from assembly 'ActiveTextureManagement'
[LOG 22:59:38.328] ATM: --------------------------------------------------------
[LOG 22:59:38.328] ATM: DXT5 (1024x1024) mipmaps: 11 readable: True name: BoulderCo/Clouds/Textures/detail1
[LOG 22:59:38.328] ATM: DXT5 (1024x1024) mipmaps: 11 readable: True name: BoulderCo/Clouds/Textures/detaileve1
[LOG 22:59:38.328] ATM: DXT5 (2048x1024) mipmaps: 12 readable: True name: BoulderCo/Clouds/Textures/duna1
[LOG 22:59:38.328] ATM: DXT5 (2048x1024) mipmaps: 12 readable: True name: BoulderCo/Clouds/Textures/eve1
[LOG 22:59:38.328] ATM: DXT5 (2048x1024) mipmaps: 12 readable: True name: BoulderCo/Clouds/Textures/jool1
[LOG 22:59:38.328] ATM: DXT5 (2048x1024) mipmaps: 12 readable: True name: BoulderCo/Clouds/Textures/joolLayers1
[LOG 22:59:38.328] ATM: DXT5 (2048x1024) mipmaps: 12 readable: True name: BoulderCo/Clouds/Textures/joolLayers2
[LOG 22:59:38.328] ATM: DXT5 (8192x4096) mipmaps: 14 readable: True name: BoulderCo/Clouds/Textures/kerbin1

Well, what does one think?

Haha, I'm sold. Never thought to reduce log bloat during setup, but I'm in. As long as you consent to the rules of the MIT license, the patch is all that is needed. Thanks! :)

Link to comment
Share on other sites

Having a slight problem with the mod ( I'm pretty sure its ATM causing it). Since updating hullcams to its newest version the game comes to a halt at aerocam and refuses to budge at all. Even left it running for 20 mins with the game barely drawing more than .2% of my cpu and was left at 1706mb of ram with no movement of the loadbar at all.

output log

https://drive.google.com/file/d/0BwYzqg0314S0cEs3SEN6RUN6eVU/edit?usp=sharing

Link to comment
Share on other sites

Having a slight problem with the mod ( I'm pretty sure its ATM causing it). Since updating hullcams to its newest version the game comes to a halt at aerocam and refuses to budge at all. Even left it running for 20 mins with the game barely drawing more than .2% of my cpu and was left at 1706mb of ram with no movement of the loadbar at all.

output log

https://drive.google.com/file/d/0BwYzqg0314S0cEs3SEN6RUN6eVU/edit?usp=sharing

Did you remove ATM to see if it really was the issue? Doesn't look like it is:


NullReferenceException: Object reference not set to an instance of an object
at MuMechModuleHullCamera.Awake () [0x00000] in <filename unknown>:0
UnityEngine.GameObject:Internal_AddComponentWithType(Type)
UnityEngine.GameObject:AddComponent(Type)
Part:AddModule(String)
Part:AddModule(ConfigNode)
PartLoader:ParsePart(UrlConfig, ConfigNode)
:MoveNext()

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object
at PartModule.Load (.ConfigNode node) [0x00000] in <filename unknown>:0

at Part.AddModule (.ConfigNode node) [0x00000] in <filename unknown>:0

at PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node) [0x00000] in <filename unknown>:0

at PartLoader+.MoveNext () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

CMC: False AMC: True COA: False

(Filename: C:/BuildAgent/work/d3d49558e4d408f4/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 53)

NullReferenceException: Object reference not set to an instance of an object
at MuMechModuleHullCamera.OnStart (StartState state) [0x00000] in <filename unknown>:0

at Part.ModulesOnStart () [0x00000] in <filename unknown>:0

at Part+ .MoveNext () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object
at FlightGlobals.get_ActiveVessel () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.EventObserver.Update () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.FinalFrontier.Update () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object
at FlightGlobals.get_ActiveVessel () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.EventObserver.Update () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.FinalFrontier.Update () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object
at FlightGlobals.get_ActiveVessel () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.EventObserver.Update () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.FinalFrontier.Update () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object
at FlightGlobals.get_ActiveVessel () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.EventObserver.Update () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.FinalFrontier.Update () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object
at FlightGlobals.get_ActiveVessel () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.EventObserver.Update () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.FinalFrontier.Update () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object
at FlightGlobals.get_ActiveVessel () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.EventObserver.Update () [0x00000] in <filename unknown>:0

at Nereid.FinalFrontier.FinalFrontier.Update () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

Link to comment
Share on other sites

Latest hull cam is broken FYI hence:

NullReferenceException: Object reference not set to an instance of an object

at MuMechModuleHullCamera.OnStart (StartState state) [0x00000] in <filename unknown>:

If thats the case will alert them to it tomorrow since the old version works fine will just keep it for the time being.

Link to comment
Share on other sites

Latest hull cam is broken FYI hence:

NullReferenceException: Object reference not set to an instance of an object

at MuMechModuleHullCamera.OnStart (StartState state) [0x00000] in <filename unknown>:

Oh, thanks! I'll have to uninstall it later, then. Is there anywhere that I can get a version of Hullcam that works with this version of the mod?

Link to comment
Share on other sites

Latest hull cam is broken FYI hence:

NullReferenceException: Object reference not set to an instance of an object

at MuMechModuleHullCamera.OnStart (StartState state) [0x00000] in <filename unknown>:

Ah, thanks! I don't think it's just the latest Hullcam, though. I downgraded a version, but it stops loading at the Aerocam. I guess I'll just have to get rid of Hullcam until it's fixed.

Link to comment
Share on other sites

Green Skull - the folder structure of ASET ALCOR pod has changed in the recent update and your config for it is no longer being applied. Could you possibly make a new one for us? For reference, this is the new folder structure:

gzmGtI9.png

As you can see, the props are in a different folder (to save memory for people who don't want the IVA of ALCOR for some reason), so I'm guessing the new ATM config would have to point to that.

ALCOR thread here.

Link to comment
Share on other sites

Yes there are, thank you ! I was on V6, having skipped your latest.

Now that ATM is also compressing TextureReplacer, KSP is using at least 600MB less of RAM ! :D :D :D

Before : 2.7GB at kerbalSpaceCenter

Now : ~2.0Gb at kerbalSpaceCenter and maxes at 2.8GB.

Perfect !

Edited by vanlock
Link to comment
Share on other sites

Green Skull - the folder structure of ASET ALCOR pod has changed in the recent update and your config for it is no longer being applied. Could you possibly make a new one for us? For reference, this is the new folder structure:

http://i.imgur.com/gzmGtI9.png

As you can see, the props are in a different folder (to save memory for people who don't want the IVA of ALCOR for some reason), so I'm guessing the new ATM config would have to point to that.

ALCOR thread here.

I'll update. Cookies awarded for pictures :D

Link to comment
Share on other sites

Latest configs including revisions to ASET. Base settings are for full res interior. Same now on KSO.

Now @ 91 configs.

ATMconfiglist_zpsf531fede.png

Download - Green Skull ATM configs v8

To install simply remove old file and replace with new version from download.

File location is here :

KSP\GameData\BoulderCo\ActiveTextureManagerConfigs

Edited by Green Skull
Link to comment
Share on other sites

So something seems to be wrong, I had to install this mod as I was getting memory crashes with novopunch. My mechjeb seems to no longer display in the VAB or the launch pad. Has anyone got any ideas?

Assuming you have the latest mechjeb try deleting the toolbar-settings.dat file in Game Data then all the mechjeb sttings files in this folder:

\GameData\MechJeb2\Plugins\PluginData\MechJeb2

Link to comment
Share on other sites

Latest configs including revisions to ASET. Base settings are for full res interior. Same now on KSO.

Now @ 91 configs.

http://i1332.photobucket.com/albums/w615/greenskullinc/ATMconfiglist_zpsf531fede.png

Download - Green Skull ATM configs v8

To install simply remove old file and replace with new version from download.

File location is here :

KSP\GameData\BoulderCo\ActiveTextureManagerConfigs

Are there some setup instructions I'm missing for these? I replace the configs in the ActiveTextureManagerConfigs folder with these and my RPM screens and IVAs start having serious texture issues, and the log shows multiple instances of things like:

[EXC 20:55:12.961] UnityException: Texture 'WarpPlugin/PlanetResourceData/kerbin_uranium' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.

The RPM screens go grey and nothing changes when I click on the buttons. None of the other non-RPM displays seem to work in IVA either. For example, the speed indicator and buttons in the stock Mk 1-2 pod (in this case, the one that turns purple when the gear is 'down').

Reverting to the configs provided with ATM and clearing the texture cache fixes the issue. I would like to resolve this issue and be able to use your configs primarily to clear up the IVA view for the ALCOR lander. Note that I do not use the Aggressive version of ATM, just the Basic...maybe this is an issue. Wish I'd remembered to grab a screenshot before reverting to 'stock' configs...

Edited by Einarr
Minor grammatical errors...and typos...
Link to comment
Share on other sites

Latest configs including revisions to ASET. Base settings are for full res interior. Same now on KSO.

Now @ 91 configs.

http://i1332.photobucket.com/albums/w615/greenskullinc/ATMconfiglist_zpsf531fede.png

Download - Green Skull ATM configs v8

To install simply remove old file and replace with new version from download.

File location is here :

KSP\GameData\BoulderCo\ActiveTextureManagerConfigs

Hey Green Skull,

Do you have a more aggressive configuration for your ATMConfigs? This is because, if I load your configuration, my PC (a 4 year old PC at that, ok I know it's not going to be good in running KSP, but that's all I have) stutters/frame lag everytime I go anywhere that is not map mode.

Link to comment
Share on other sites

Are there some setup instructions I'm missing for these? I replace the configs in the ActiveTextureManagerConfigs folder with these and my RPM screens and IVAs start having serious texture issues, and the log shows multiple instances of things like:

[EXC 20:55:12.961] UnityException: Texture 'WarpPlugin/PlanetResourceData/kerbin_uranium' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.

The RPM screens go grey and nothing changes when I click on the buttons. None of the other non-RPM displays seem to work in IVA either. For example, the speed indicator and buttons in the stock Mk 1-2 pod (in this case, the one that turns purple when the gear is 'down').

Reverting to the configs provided with ATM and clearing the texture cache fixes the issue. I would like to resolve this issue and be able to use your configs primarily to clear up the IVA view for the ALCOR lander. Note that I do not use the Aggressive version of ATM, just the Basic...maybe this is an issue. Wish I'd remembered to grab a screenshot before reverting to 'stock' configs...

I'm looking into this now and I'll post updated configs later.

Hey Green Skull,

Do you have a more aggressive configuration for your ATMConfigs? This is because, if I load your configuration, my PC (a 4 year old PC at that, ok I know it's not going to be good in running KSP, but that's all I have) stutters/frame lag everytime I go anywhere that is not map mode.

You need to go into the main ATM config in the ATM folder in KSP. Find this part:

### Resize the texture by the scale specified. Use powers

### of two for best efficiency. 1 is no scalling, 2, is 1/2

### 4 is 1/4, etc.

scale = 2 <----------------- change 2 to 4

make sure this part looks like this:

### Section for normalmapped textures. Same as above, but

### apply only to normal maps.

compress_normals = true

mipmaps_normals = false

scale_normals = 2

max_size_normals = 256

I will include a higher scaling power (lower memory) config in my next update.

Link to comment
Share on other sites

I'm looking into this now and I'll post updated configs later.

You need to go into the main ATM config in the ATM folder in KSP. Find this part:

### Resize the texture by the scale specified. Use powers

### of two for best efficiency. 1 is no scalling, 2, is 1/2

### 4 is 1/4, etc.

scale = 2 <----------------- change 2 to 4

make sure this part looks like this:

### Section for normalmapped textures. Same as above, but

### apply only to normal maps.

compress_normals = true

mipmaps_normals = false

scale_normals = 2

max_size_normals = 256

I will include a higher scaling power (lower memory) config in my next update.

Hey Green Skull,

Thanks for the quick reply. The main configuration I have comes from AMT Aggressive and it loads fine without any lag/stutter on my 4 year old PC. However, after I replaced the configs from your pack, I'm getting stuters and lag.

I'll try the edits you've suggested after I get home and I'll let you know of your results.

Thanks!

Link to comment
Share on other sites

Hey Green Skull,

Thanks for the quick reply. The main configuration I have comes from AMT Aggressive and it loads fine without any lag/stutter on my 4 year old PC. However, after I replaced the configs from your pack, I'm getting stuters and lag.

I'll try the edits you've suggested after I get home and I'll let you know of your results.

Thanks!

Sorry it's early here and I completely miss-read your post. Ignore what I originally posted!

Was this the first time it ran with the new configs or iis it every time since the new configs?

I've included settings in the latest download for high memory saving so try these.

Also try removing the configs for the mods that you do not have. e.g. delete the CMES config if you don't use CMES. Let me know if this works please. I personally get no stutters and lag but my PC is self built and less than 5 months old...

Edited by Green Skull
Link to comment
Share on other sites

Latest version 9 of my configs. Updated the ASET config to (hopefully) solve the issue with the IVA. Updated the Green Skull config to optimise my new stretchy tank life support textures.

Added the option for normal or high memory saving. Use normal for the latest configs on basic or aggressive. Use high settings for ultimate memory saving.

Note high settings reduce textures in size by 4 rather than 2. This lowers resolution greatly so "stuff is fuzzier" BUT saves more memory than stock aggressive. Please see the README file for installation instructions.

Download here Green Skull ATM configs v9

Link to comment
Share on other sites

Latest version 9 of my configs. Updated the ASET config to (hopefully) solve the issue with the IVA. Updated the Green Skull config to optimise my new stretchy tank life support textures.

Added the option for normal or high memory saving. Use normal for the latest configs on basic or aggressive. Use high settings for ultimate memory saving.

Note high settings reduce textures in size by 4 rather than 2. This lowers resolution greatly so "stuff is fuzzier" BUT saves more memory than stock aggressive. Please see the README file for installation instructions.

Download here Green Skull ATM configs v9

I just downloaded 8 yesterday! And 7 2 days before that! How fast can you put these out?!

Link to comment
Share on other sites

This has grown from me submitting my own configs to rbray to 90 something configs in a couple of weeks. I'm thinking this will be it for a while unless major errors like the ASET pod or some super awesome pack I have to find RAM for comes out. The little bits and pieces I add will only come in major updates or every now and then.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...