Jump to content

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


rbray89

Recommended Posts

Giving it a shot.

On the plus side, you can probably look forward to rewriting it all again when Squad once again dramatically changes the texture format in the next update or two :P

EDIT: I'm not actually really seeing any big differences in RAM immediately after loading between Basic and Aggressive, nor between 2.7 and 1.1.

Of course that's discounting the fact that without this mod altogether I can't even get halfway through my mod load, so that's nice.

Really depends on what mods you have, and if you already have texture reduction packs installed or not. In that example, aggressive shaved off almost twice as much (~900MB vs ~600MB) as 1.1 or basic.

Link to comment
Share on other sites

Ignore what I said about aggressive, I miscopied the .cfg and just ended up loading Basic twice :P

I did just have a crash while using Basic while compressing WarpPlugin, NearFuture, and BobCatind, but it was on an LLL part...

There's nothing obvious in the output.log, it just says CRASH, follows a bunch of windows ****, and then this:


(0x044AEACB) (Mono JIT code): (filename not available): System.Collections.Generic.Dictionary`2<string, int>:TryGetValue (string,int&) + 0x33 (044AEA98 044AEC0A) [02C24E70 - Unity Root Domain] + 0x0
(0x04582885) (Mono JIT code): (filename not available): PartLoader:ParsePart (UrlDir/UrlConfig,ConfigNode) + 0x389d (0457EFE8 04583D11) [02C24E70 - Unity Root Domain] + 0x0
(0x0457EEBA) (Mono JIT code): (filename not available): PartLoader/:MoveNext () + 0x122 (0457ED98 0457EFA6) [02C24E70 - Unity Root Domain] + 0x0
(0x044DF611) (Mono JIT code): (filename not available): (wrapper runtime-invoke) <Module>:runtime_invoke_bool__this__ (object,intptr,intptr,intptr) + 0x41 (044DF5D0 044DF67A) [02C24E70 - Unity Root Domain] + 0x0
(0x100EFCF6) (mono): (filename not available): mono_set_defaults + 0x22bf
(0x1005D603) (mono): (filename not available): mono_runtime_invoke + 0x51
(0x00F6BD88) (KSP): (filename not available): RaiseNullExceptionObject + 0xa888
(0x00F6B6A5) (KSP): (filename not available): RaiseNullExceptionObject + 0xa1a5
(0x00F6B651) (KSP): (filename not available): RaiseNullExceptionObject + 0xa151
(0x00F4B5AA) (KSP): (filename not available): kMemAudioTempStruct::kMemAudioTempStruct + 0x9fa
(0x00EAE11E) (KSP): (filename not available): Behaviour::InitializeClass + 0xe9e
(0x00F38171) (KSP): (filename not available): QuaternionToEuler + 0x31361
(0x00FCEA9D) (KSP): (filename not available): PlayerMainWndProc + 0x5ad
(0x00FD01FB) (KSP): (filename not available): PlayerWinMain + 0x99b
(0x011174E8) (KSP): (filename not available): Object::SetInstanceID + 0x7d728
(0x01148E10) (KSP): (filename not available): Object::SetInstanceID + 0xaf050
(0x75DF336A) (KERNEL32): (filename not available): BaseThreadInitThunk + 0x12
(0x76FA9F72) (ntdll): (filename not available): RtlInitializeExceptionChain + 0x63
(0x76FA9F45) (ntdll): (filename not available): RtlInitializeExceptionChain + 0x36

EDIT: I just tried again and it actually froze up with 'OUT OF MEMORY' in the Debug menu... however KSP was only using 2.8GB of RAM when it did this. Very odd. It was loading WarpPlugin parts when it did...

EDIT 2: Removed WarpPlugin from the compression list, loaded okay.

EDIT 3: Woohoo! Compressed HOME and got under 3GB. Yay!

EDIT 4: Managed to crush Kethane, IR, and NearFuture.

Edited by Frostiken
Link to comment
Share on other sites

Ignore what I said about aggressive, I miscopied the .cfg and just ended up loading Basic twice :P

I did just have a crash while using Basic while compressing WarpPlugin, NearFuture, and BobCatind, but it was on an LLL part...

There's nothing obvious in the output.log, it just says CRASH, follows a bunch of windows ****, and then this:


(0x044AEACB) (Mono JIT code): (filename not available): System.Collections.Generic.Dictionary`2<string, int>:TryGetValue (string,int&) + 0x33 (044AEA98 044AEC0A) [02C24E70 - Unity Root Domain] + 0x0
(0x04582885) (Mono JIT code): (filename not available): PartLoader:ParsePart (UrlDir/UrlConfig,ConfigNode) + 0x389d (0457EFE8 04583D11) [02C24E70 - Unity Root Domain] + 0x0
(0x0457EEBA) (Mono JIT code): (filename not available): PartLoader/:MoveNext () + 0x122 (0457ED98 0457EFA6) [02C24E70 - Unity Root Domain] + 0x0
(0x044DF611) (Mono JIT code): (filename not available): (wrapper runtime-invoke) <Module>:runtime_invoke_bool__this__ (object,intptr,intptr,intptr) + 0x41 (044DF5D0 044DF67A) [02C24E70 - Unity Root Domain] + 0x0
(0x100EFCF6) (mono): (filename not available): mono_set_defaults + 0x22bf
(0x1005D603) (mono): (filename not available): mono_runtime_invoke + 0x51
(0x00F6BD88) (KSP): (filename not available): RaiseNullExceptionObject + 0xa888
(0x00F6B6A5) (KSP): (filename not available): RaiseNullExceptionObject + 0xa1a5
(0x00F6B651) (KSP): (filename not available): RaiseNullExceptionObject + 0xa151
(0x00F4B5AA) (KSP): (filename not available): kMemAudioTempStruct::kMemAudioTempStruct + 0x9fa
(0x00EAE11E) (KSP): (filename not available): Behaviour::InitializeClass + 0xe9e
(0x00F38171) (KSP): (filename not available): QuaternionToEuler + 0x31361
(0x00FCEA9D) (KSP): (filename not available): PlayerMainWndProc + 0x5ad
(0x00FD01FB) (KSP): (filename not available): PlayerWinMain + 0x99b
(0x011174E8) (KSP): (filename not available): Object::SetInstanceID + 0x7d728
(0x01148E10) (KSP): (filename not available): Object::SetInstanceID + 0xaf050
(0x75DF336A) (KERNEL32): (filename not available): BaseThreadInitThunk + 0x12
(0x76FA9F72) (ntdll): (filename not available): RtlInitializeExceptionChain + 0x63
(0x76FA9F45) (ntdll): (filename not available): RtlInitializeExceptionChain + 0x36

EDIT: I just tried again and it actually froze up with 'OUT OF MEMORY' in the Debug menu... however KSP was only using 2.8GB of RAM when it did this. Very odd. It was loading WarpPlugin parts when it did...

You may have to populate the normalmap list for plugins that don't mark the normalmaps properly. If you post your KSP.log I might be able to help.

Link to comment
Share on other sites

I'm a big boy :) What specific errors would I be looking for to exempt? I see a few nags about normal maps on other parts but it doesn't seem to have an effect.

Those for starters... those are probably complaints that textures aren't marked as normal maps and aren't readable? Add those textures into the normalmap list in the config. I loaded the game with some of those errors without issue, so I would probably keep looking. Search for "Error" and you might run into a unity stack dump. Looks a good bit different from the standard KSP log. There may be something right before that occurs that can give us some clues.

Link to comment
Share on other sites

Copy. Loading with WarpPlugin again so I'll see what happens. Maybe something. Maybe nothing.

Update: I've loaded with WarpPlugin compressed four times now without problems.

I checked the log and the only error that seems out of place is this one:

[LOG 07:34:04.424] Load(Model): LLL/Parts/Utility/LLLGrill/modelx
[ERR 07:34:04.426] File error:
Failed to read past end of stream.
at System.IO.BinaryReader.FillBuffer (Int32 numBytes) [0x00000] in <filename unknown>:0
at System.IO.BinaryReader.ReadInt32 () [0x00000] in <filename unknown>:0
at A..ReadChild (System.IO.BinaryReader br, UnityEngine.Transform parent) [0x00000] in <filename unknown>:0
at A.. (.UrlFile ) [0x00000] in <filename unknown>:0
[WRN 07:34:04.427] Model load error in 'E:\Steam\steamapps\common\Kerbal Space Program\GameData\LLL\Parts\Utility\LLLGrill\modelx.mu'

I don't know if this actually has anything to do with your plugin though.

I do have a TON of Normal Map errors, but 95% of them are on the default Squad parts (I am using the low-res Squad texture pack so that's probably why). However, it causes no problems so I'm not seeing any issues.

I'll stick with your mod and let you know if I have any more problems. This might seriously be the best mod simply because of what it does. Hopefully someday soon we'll get 64bit KSP and this will all be a bad memory :)

Cheers!

Link to comment
Share on other sites

Copy. Loading with WarpPlugin again so I'll see what happens. Maybe something. Maybe nothing.

Update: I've loaded with WarpPlugin compressed four times now without problems.

I checked the log and the only error that seems out of place is this one:

[LOG 07:34:04.424] Load(Model): LLL/Parts/Utility/LLLGrill/modelx
[ERR 07:34:04.426] File error:
Failed to read past end of stream.
at System.IO.BinaryReader.FillBuffer (Int32 numBytes) [0x00000] in <filename unknown>:0
at System.IO.BinaryReader.ReadInt32 () [0x00000] in <filename unknown>:0
at A..ReadChild (System.IO.BinaryReader br, UnityEngine.Transform parent) [0x00000] in <filename unknown>:0
at A.. (.UrlFile ) [0x00000] in <filename unknown>:0
[WRN 07:34:04.427] Model load error in 'E:\Steam\steamapps\common\Kerbal Space Program\GameData\LLL\Parts\Utility\LLLGrill\modelx.mu'

I don't know if this actually has anything to do with your plugin though.

I do have a TON of Normal Map errors, but 95% of them are on the default Squad parts (I am using the low-res Squad texture pack so that's probably why). However, it causes no problems so I'm not seeing any issues.

I'll stick with your mod and let you know if I have any more problems. This might seriously be the best mod simply because of what it does. Hopefully someday soon we'll get 64bit KSP and this will all be a bad memory :)

Cheers!

Hmmmm... doesn't seem to be from my code. looks like a model issue.

Link to comment
Share on other sites

I just tried the aggressive 2-7 on a completely stock 0.23 install, and didn't notice any errors or warnings in the log, but I did see a 214MB memory reduction -- wow! :D However, it also took 4 minutes to load the game -- boo. :( This is compared with a 2MB reduction with 1-1.

I don't know. As I add back in the mods I do use, I can see that load time becoming unbearable, and I only use a handful of parts mods. I'll try out the non-aggressive version of 2-7 next and see what I see, but maybe 1-1 is the best I can hope for on my machine.

Again, that's not to minimize the work you've done rbray89, because I think it's just fantastic.

Link to comment
Share on other sites

I just tried the aggressive 2-7 on a completely stock 0.23 install, and didn't notice any errors or warnings in the log, but I did see a 214MB memory reduction -- wow! :D However, it also took 4 minutes to load the game -- boo. :( This is compared with a 2MB reduction with 1-1.

I don't know. As I add back in the mods I do use, I can see that load time becoming unbearable, and I only use a handful of parts mods. I'll try out the non-aggressive version of 2-7 next and see what I see, but maybe 1-1 is the best I can hope for on my machine.

Again, that's not to minimize the work you've done rbray89, because I think it's just fantastic.

Yeah, I know the load time will put some people off, but for some, it may be the only way to run the game with decent settings.

Link to comment
Share on other sites

But I want to have my cake and eat it too! ;-)

Haha, in that case, install one of those new-fangled Solid State Drives in a raid configuration with a 1TB HD?

If you want the ability of 1.1, you can simply remove the folders in the config list. The speed should be the same as 1.1 then.

Link to comment
Share on other sites

Haha, in that case, install one of those new-fangled Solid State Drives in a raid configuration with a 1TB HD?

If you want the ability of 1.1, you can simply remove the folders in the config list. The speed should be the same as 1.1 then.

*sigh* Would if I could. There's a reason I'm running a nearly 10 year old machine with only 2GB of memory -- it's called being dirt poor! :D It's funny, but I never really cared about running games before discovering KSP.

Link to comment
Share on other sites

Just downloaded the 2-7 basic (removed 1-1) and added it in the gamesfolder. Upon the first loading it got stuck in an Airelon part. I pressed alt+f4 and restarted the game. Everything went well, it seems like it skipped it or something. As soon as it was done, I exited, restarted (as instructed) and it all works like clockwork! cheers!

Link to comment
Share on other sites

Well... he had just write it in a platform independent language with a minimal amount of discipline. Let's take Java as an example. So the "joy" in KSP is quite some kind of standard these days.

A lot of people don't have java installed for security reasons or simply because it's not installed by their OS -- OS X ships without Java as do many (most? All?) Linuxes. Runtime compression is cross platform and only relies on having KSP installed.

Link to comment
Share on other sites

Looks like 2-7 basic is a keeper, seems to be working good so far. Haven't seen any hangups or severe texture issues. Also there doesn't seem to be much of a change in the load time, since I have quite a few mods installed it typically takes about 8-10 minutes for everything to load up. 7 year old computer, duo core 2 with about 6gigs ram.

Transitioning from 1-1 I was getting up to 3.2 memory usage so far with 2-7 it brought it down to 2.5 memory usage.

different folders I have listed in the texturecompressor.cfg

folder = Squad/

folder = BoulderCo/

folder = KWRocketry/

folder = B9_Aerospace/

folder = AIES_Aerospace/

folder = ASET/

folder = Bavaria/

folder = BioMass+Science/

folder = chroma works/

folder = heat/

folder = ExtraplanetaryLaunchpads/

folder = KAS/

folder = Kethane/

folder = Klockheed_Martian/

folder = LLL-Extra/

folder = MagicSmokeIndustries/

folder = MechJeb2/

folder = MobiusRocketWorks/

folder = ModsByTal/

folder = NavyFish/

folder = NearFuture/

folder = nothke_DROMOMAN/

folder = NothkeSerCom/

folder = Parts/

folder = RBR/

folder = RealChute/

folder = RemoteTech2/

folder = ScoopOMatic/

folder = The DoPToOT/

folder = ThunderAerospace/

folder = WarpPlugin/

folder = LLL/

Edited by Sigma52
forgot to place re in the word there
Link to comment
Share on other sites

That is odd... Should work better and have fewer issues. KSP.log? Config file?

Which log file do you want to see? Do you want the whole thing, or only a certain part? As for the config, I'm using Aggressive with these folders:

folder = B9_Aerospace/

folder = BoulderCo/

folder = JSI/

folder = Keramzit/

folder = KWRocketry/

folder = NothkeSerCom/

folder = NovaPunch2/

folder = RealChute/

folder = RemoteTech2/

folder = SDHI/

folder = Squad/

folder = TextureReplacer/

folder = TiberDyneShuttle/

Link to comment
Share on other sites

Cant get 2.7 Basic to run it crashes to desktop Version 1.1 runs fine, for us old folks would it be possible to do a step by step guide just in case I am doing something wrong.

This is the process I followed

1 Backup current game directory

2 deleted version 1.1 Boulder Co

3 Installed new version BoulderCo

4 opened CFG file listed mod folders

5 Start Game

6 Crashed Game :(

7 Went back to V1.1 happy camper

Edited by Virtualgenius
Link to comment
Share on other sites

Which log file do you want to see? Do you want the whole thing, or only a certain part? As for the config, I'm using Aggressive with these folders:

folder = B9_Aerospace/

folder = BoulderCo/

folder = JSI/

folder = Keramzit/

folder = KWRocketry/

folder = NothkeSerCom/

folder = NovaPunch2/

folder = RealChute/

folder = RemoteTech2/

folder = SDHI/

folder = Squad/

folder = TextureReplacer/

folder = TiberDyneShuttle/

KSP.log is the one we are looking for.

Link to comment
Share on other sites

Hmmm... I can't see anything in the logs... Does it just crap out during load? Do you have a resource monitor? (on windows: task manager, performance, bottom "open resource monitor" and then memory tab) If you do, watch the memory usage while KSP is loading to make sure it isn't going above your memory limit.

Link to comment
Share on other sites

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