Jump to content

Maximum SKSE Heap Memory size?


Sacremas

Recommended Posts

I'm using the SKSE Memory Patch, and currently I have defaultHeapInitialAllocMB=768, however I've been having CTDs lately of the type that vanished earlier when I increase the heap size, but since then I've added a lot of mods. So in interest of trying to stop this permanently, what's the maximum possible Heap Memory size I can put that value on? I have 8 gig RAM and VRAM.

Link to comment
Share on other sites

The MAX (from what i have read) is 1024, so since the way the SKSE was implemented you would have to add 256. 1280 would net you 1024. The second line (scrap heap)must remain 256.

We can see this in the "skse_steam_loader.log"

 

"~snip~

overriding memory pool sizes
default heap = 768MB (effective 512MB if not preloading animations)
scrap heap = 256MB
My SKSE.ini is set to 768 netting me 512. I have yet to see it hit higher then 350. Even after 6 hours straight with the GPU filled at 3 GB and System RAM commit at 8 GB.
Run with the "Memblocks.log' running and see what your Memory blocks get up to. IF you get to 512 and it crashed then by all means up it to 1024 or the MAX of 1280. (1280 would net you 1024).
Are you also using an ENB , if only for the BOOST feature? This is as important as the SKSE.ini
PIC's or it never happened.
PIC Skyrim hits 3.1 GB RAM usage , does NOT crash and continued on for 2.5 hours. Thank you ENBboost.
PIC<<<Lol 5.5 hours of Skyrim kickin my computers butt.
PIC<<<Good RAM usage.
I have Quotes around someplace from Sheson and Boris explaining the why's behind all this...Dug Up the quotes from Sheason..

sheson 158 kudos44 posts
Block2 usage can not be increased atm. There are a few boundary checks in the code so it will never use more than 256MB no matter the settings.
This really should not be a problem, because when block2 is full, more memory is allocated in smaller chunks somewhere else. Unlike block1 this doesn't cause CTD as far as I know. Since you are not yet hitting the limit of 256 when you CTD the cause is most likely something else.
sheson 158 kudos44 posts
That one movapps works with memory allocated by block1. As we discussed earlier there is no real point in changing it as long as block is never fully used. If not changed it will cause CTD sooner than later when block 1 is full. But also a lot of other things will cause CTD anyhow.
I never really investigated why allocating a larger block2 is needed when block1 is set to high values to make the game start. Instead I tried a few simple futile stabs at making it use a larger block2 to no avail.
It almost sounds like you are seeing CTD when block2 initial allocation is filled? Anyhow, when I did these futile stabs I filled block2 with 1000s NPC and watched it allocate new chunks past the initial 256MB without any CTDs. block2 allocation and usage is really different from block1.
I guess I may revisit block2 at some time, but as long as my game is not crashing at all and my memory usage doesn't require me to change block2 there is little reason at the moment.

As was pointed out above, it has Been reported that many people have to raise block 2 (above 256) to have a high value for Block 1., or the game wont start.
Edited by camaro_69_327
Link to comment
Share on other sites

I'm using Realvision ENB and all the mods he suggest (ENBoost set up for 8 gig Vram), plus a ton of scripted mods running in the background (Frostfall and a dozen others) all of which strains the system. I know from Papyrus logs that it wasn't the scripts crashing it, and the crashes were random, I'd crash walking halfway from Riverwood to Whiterun, reload and start the walk all over again and this time crash at the Whiterun gates, etc, completely random and not dependent on me making any changes on what I did. Last time I had random CTDs the solution was to increase heap size to 768, that stopped them entirley, but as said I'm using more mods now.

 

I tried increasing it to 1280 but like past attempts at increasing it the game crashes soon after the ENB starts to load up in the left corner on the start screen. I tried increasing second heap to 512 but that had no effect on the crash.

 

Anyone know a stable medium to put it on without crashing on start up, or what I should put the second heap on?

 

EDIT: Okay I got it to start up on the following values;

 

[Memory]
defaultHeapInitialAllocMB=1024
scrapHeapSizeMB=768

 

Let's see if that's enough...

 

EDIT2:

Manged to reduce ScrapHeap to 384 and not crash at start up, that seems to be the one to go with. even with scrap heap on 768 or even 1024 however I was unable to get to defaultinitial 1280.

 

Additionally it seems my game is a lot more stable if before I start it up I restart the computer and shut down as many background programs as possible (firefox, utorrent, and whatever I can get with file manager), after doing that it runs for longer without CTDing. If Firefox is open on just a few pages the chance for CTD goes up by a lot however. Before I added multiple script mods I was able to keep multiple Firefox windows as well as play music with Win Media Player in the background and still get a perfectly smooth game, but of course by now I can't remove those script mods without ruining my save. Something to keep in mind for next install.

Edited by Sacremas
Link to comment
Share on other sites

  • 8 months later...
  • 1 month later...

Couple of comments on the memory when using the SKSE ini tweak.

 

 

First, which seems to be a misunderstanding here, the total memory available for the first block is (defaultHeapInitialAllocMB) - (scrapHeapSizeMB). This is why you crashed when setting scrapHeap too high.

 

Scrapheap should never have to be increased, no matter how big you set the defaultHeap.

 

 

Secondly, in the enblocal.ini you have this setting: ExpandSystemMemoryX64

 

This setting can only be true if you have set defaultHeapInitialAllocMB to a MAXIMUM of 768. If you need it to be higher then ExpandSystemMemoryX64 MUST be set to false.

 

This is because the ENB setting reduces memory fragmentation by allocating the bottom end of the memory first; potentially leading to a more stable system. Personally I have this to off and use a bigger Heap instead.

 

 

Third, the memory setting in the ENB has for a long time been said to be VRAM+RAM-2048 but according to Boris (the creator of ENB) it should be set as VRAM - X where X is 170 if you run Win7 and 350 if you run Win8/Win10.

 

For a 4GB graphics card on Win7 that means it should be set to 4096-170 = 3926.

  • Thanks 1
Link to comment
Share on other sites

  • 3 years later...

Couple of comments on the memory when using the SKSE ini tweak.

 

 

First, which seems to be a misunderstanding here, the total memory available for the first block is (defaultHeapInitialAllocMB) - (scrapHeapSizeMB). This is why you crashed when setting scrapHeap too high.

 

Scrapheap should never have to be increased, no matter how big you set the defaultHeap.

 

 

Secondly, in the enblocal.ini you have this setting: ExpandSystemMemoryX64

 

This setting can only be true if you have set defaultHeapInitialAllocMB to a MAXIMUM of 768. If you need it to be higher then ExpandSystemMemoryX64 MUST be set to false.

 

This is because the ENB setting reduces memory fragmentation by allocating the bottom end of the memory first; potentially leading to a more stable system. Personally I have this to off and use a bigger Heap instead.

 

 

Third, the memory setting in the ENB has for a long time been said to be VRAM+RAM-2048 but according to Boris (the creator of ENB) it should be set as VRAM - X where X is 170 if you run Win7 and 350 if you run Win8/Win10.

 

For a 4GB graphics card on Win7 that means it should be set to 4096-170 = 3926.

I've been trying to expand the memory patch for a few days and didn't know about the ExpandSystemMemoryX64 toggle. Thanks so much for that post. Works perfectly now.

Link to comment
Share on other sites

  • 4 weeks later...

The expand memory setting is that supposed to be in all enblocal.ini files regardless of the enb and flavor of skyrim that you use? I am running SSE on Win 10 using Semirealis ENB 3.4 for Cathedral Weathers and here is what my enblocal.ini looks like.

 

 

[PROXY]

EnableProxyLibrary=false

InitProxyFunctions=true

ProxyLibrary=

 

[PERFORMANCE]

SpeedHack=true

ShaderCache=false

 

[ENGINE]

ForceVSync=false

VSyncSkipNumFrames=0

 

[LIMITER]

EnableFPSLimit=false

FPSLimit=61.0

 

[iNPUT]

KeyCombination=16

KeyUseEffect=123

KeyFPSLimit=36

KeyShowFPS=106

KeyScreenshot=44

KeyEditor=13

KeyDof=118

 

[ANTIALIASING]

EnableEdgeAA=true

 

[DITHERING]

EnablePrepass=false

EnablePostpass=false

AmountPrepass=1.0

AmountPostPass=1.0

 

[FIX]

FixReflectionTrees=true

DisableFakeLights=true

FixReflectionThirdPerson=true

FixBlackHair=true

 

These again were the settings in my enblocal.ini located in X:\Skyrim\

Link to comment
Share on other sites

The expand memory setting is that supposed to be in all enblocal.ini files regardless of the enb and flavor of skyrim that you use? I am running SSE on Win 10 using Semirealis ENB 3.4 for Cathedral Weathers and here is what my enblocal.ini looks like.

 

 

[PROXY]

EnableProxyLibrary=false

InitProxyFunctions=true

ProxyLibrary=

 

[PERFORMANCE]

SpeedHack=true

ShaderCache=false

 

[ENGINE]

ForceVSync=false

VSyncSkipNumFrames=0

 

[LIMITER]

EnableFPSLimit=false

FPSLimit=61.0

 

[iNPUT]

KeyCombination=16

KeyUseEffect=123

KeyFPSLimit=36

KeyShowFPS=106

KeyScreenshot=44

KeyEditor=13

KeyDof=118

 

[ANTIALIASING]

EnableEdgeAA=true

 

[DITHERING]

EnablePrepass=false

EnablePostpass=false

AmountPrepass=1.0

AmountPostPass=1.0

 

[FIX]

FixReflectionTrees=true

DisableFakeLights=true

FixReflectionThirdPerson=true

FixBlackHair=true

 

These again were the settings in my enblocal.ini located in X:\Skyrim\

No, only in ENB for LE Skyrim. SSE is 64bit, so it doesn't have the system memory limitations that the original did and thus, no need for a workaround.

Link to comment
Share on other sites

  • 6 months later...

Couple of comments on the memory when using the SKSE ini tweak.

 

 

First, which seems to be a misunderstanding here, the total memory available for the first block is (defaultHeapInitialAllocMB) - (scrapHeapSizeMB). This is why you crashed when setting scrapHeap too high.

 

Scrapheap should never have to be increased, no matter how big you set the defaultHeap.

 

 

Secondly, in the enblocal.ini you have this setting: ExpandSystemMemoryX64

 

This setting can only be true if you have set defaultHeapInitialAllocMB to a MAXIMUM of 768. If you need it to be higher then ExpandSystemMemoryX64 MUST be set to false.

 

This is because the ENB setting reduces memory fragmentation by allocating the bottom end of the memory first; potentially leading to a more stable system. Personally I have this to off and use a bigger Heap instead.

 

 

Third, the memory setting in the ENB has for a long time been said to be VRAM+RAM-2048 but according to Boris (the creator of ENB) it should be set as VRAM - X where X is 170 if you run Win7 and 350 if you run Win8/Win10.

 

For a 4GB graphics card on Win7 that means it should be set to 4096-170 = 3926.

DigitalVixen, I know you posted this YEARS ago, but THANKS! This got me up and running almost perfectly. Had to add small amounts of MB, to get things right, on the, defaultHeapInitialAllocMB line. I have it set to 950, on the SKSE.ini. So Block1 is at, 694. I played for over a hour before I exited out of Skyrim. I then checked the Memory log, and I only used up to, 657. Great!

 

Had it not been for you mentioning to set the, ExpandSystemMemoryX64 to false, I would have still being trying to figure out what is going wrong.

 

Again, thanks a bunch!

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...