Jump to content

CTD and Performance patch ENBoost (by Boris Vorontsov)


EssArrBee

Recommended Posts

Reserved memory is used for cache and texture swapping between the VRAM and RAM, if I'm not mistaken. The value of this parameter will be dependent on texture sizes that the user runs. Mainly 1K textures will result in a lower value being achievable. Running 2K texture would result in the value needing to be a bit higher. 4K would be higher yet.

Link to comment
Share on other sites

I've always found it to be a VRAM hog. 

When I switch from 512 -> 64 I quite literally gain some VRAM space. That being said I have never properly tested this theory.

I can recall that performance was unaffected to any noticeable degradation but the overall felling was better.

Link to comment
Share on other sites

I've always found it to be a VRAM hog. 

When I switch from 512 -> 64 I quite literally gain some VRAM space. That being said I have never properly tested this theory.

I can recall that performance was unaffected to any noticeable degradation but the overall felling was better.

Yes, it uses VRAM. I think the description on the ENBlocal INI Guide is very clear as to what this does.

Link to comment
Share on other sites

with 8GB I would set it to VRAM and set ReservedMemorySizeMb=64 and but that is personal preference at that point.

 

I never understood the reason for having ReservedMemorySizeMb= greater than 64 but it appears to be very dependent on one's config. Maybe there is someone that would care to enlighten everyone including myself.

Yeah I'd like to know about that too. I'll try your setting and see how it goes Hishutup. I'm setting my VRAM to 3072 so as I have a 970. 3.5Gigs or 4 I have no idea  :P

Link to comment
Share on other sites

Boris and his naming ideas, it cannot get more confusing :lol: I always thought that VideoMemorySizeMB refers to, you know, VRAM. Apparently there's no way to prevent ENBoost from using RAM (I always had the impression it caused stuttering).

Well, actually you can force ENBoost to only use VRAM for it's texture / object data caching. Just set VideoMemorySizeMB to be equal or less than the amount of VRAM you have. Skyrim still uses RAM to cache some data, though. That's just the way the program was designed.

 

Yeah I'd like to know about that too. I'll try your setting and see how it goes Hishutup. I'm setting my VRAM to 3072 so as I have a 970. 3.5Gigs or 4 I have no idea  :P

ReservedMemorySizeMb set the amount of VRAM that ENBoost does not use for caching texture / object data.

 

In other words, it's reserved for your video card to do things it needs to do with VRAM. Boris has never said it explicitly, but I've always assumed there's going to be some VRAM which the video card must "lock" away for its own use, for example your frame buffers, which is what is actually displayed on screen. That's always in VRAM.

 

The reason why there's no absolute number that everyone should use for ReservedMemorySizeMb is because is depends on so many factors - how much VRAM you have, and how much memory your textures take up (which is affected by both the texture file resolution, aka 1k, 2k or 4k, and also the screen resolution you play at), and then your video card driver, and your system. For me, with a 4GB card for example, and I don't go crazy with high resolution textures everywhere, I hardly ever see my VRAM usage get maxed out, so my ReservedMemorySizeMb being relatively low (128MB) seems to work fine - for me. But with a 2GB card, maybe it should be higher so you don't see performance hits from the card's driver having to constantly swap things out in the VRAM that isn't being used by ENBoost.

 

Really, of all the ENBoost settings, ReservedMemorySizeMb is the one that deserves the most individual user testing so they can find the "sweet spot".

 

Sorry that I can't be more exact than that. You could try running yourself ragged by reading all of the ENB forum threads, as I've done, and realize there's no one-size-fits-all answer.

Edited by keithinhanoi
Link to comment
Share on other sites

But the guide specifically says "This sets the total memory that will be used for the ENBoost dynamic memory allocation". That doesn't really look like it has anything to do with VRAM, but rather the extra memory ENBoost will use. It's really confusing.

  • +1 1
Link to comment
Share on other sites

Yes, it uses VRAM. I think the description on the ENBlocal INI Guide is very clear as to what this does.

 

But the guide specifically says "This sets the total memory that will be used for the ENBoost dynamic memory allocation". That doesn't really look like it has anything to do with VRAM, but rather the extra memory ENBoost will use. It's really confusing.

It's especially important to understand that if VideoMemorySizeMb is set to be a value greater than your videocard's VRAM, ENBoost will to try to use system RAM when all VRAM is used up. Conversely, if you only want ENBoost to use available VRAM and not use system RAM, then make sure VideoMemorySizeMb is set to a value that is equal or lower than your videocard's VRAM.

 

However, ENBoost will not use the VRAM set aside for buffering via the ReservedMemorySizeMb setting.

 

I've just edited the ReservedMemorySizeMb and VideoMemorySizeMb descriptions in the ENBlocal INI/Memory page of the wiki to make them much clearer about how the two settings work in terms of VRAM and system RAM usage, and also the relationship between the two settings.

 

Tech, if you think it's still not clear, please by all means make additional edits.

  • +1 2
Link to comment
Share on other sites

  • 4 weeks later...

Hi,  I've been having problems with the wrapper version.  It worked, then it stopped and I'd ctd.  I tried quite a bit, but to no avail.  I now have the injector version and skyrim is running fine.  However, how do I know it's actually working?  The wrapper version presents the load message when the game starts, but I don't have it with the injector version.  Any ideas would be appreciated.

Link to comment
Share on other sites

I found the answer from a 2.5 year old post. I have to run the ENBInjector.exe before starting the game.  This should be listed in the STEP instructions found here

 

https://wiki.step-project.com/ENBoost#Recommendations

To be fair, the installation instructions and readme in the enbdev download both state this clearly.

Edited by Harpalus
Link to comment
Share on other sites

Added a sentence to cover this for those that do not read the ReadMes.

 

From the STEP Guide:

Read the ReadMe and other mod-related documentation that comes packaged with most mods. This includes the mod description on the Nexus. If the mod author has seen fit and taken time to create these reference materials, then they are relevant and important in the eyes of the mod author. This means that they are relevant and important to you!
Link to comment
Share on other sites

Do you still recommend to set ExpandSystemMemoryX64 to false?

I ask because Neovalen tell in his guide to set to true.

Where can I found some comments about this problem of crash when set to true with SKSE?

Thanks

That recommendation was based on my findings. With help from hishtup, I found that if ExpandSystemMemoryX64 is set to false then Block 1 of Sheson's memory fix can be set above 512MB  (in other words, setting DefaultHeapInitialAllocMB= in SKSE.ini to more than 768) without having to set Block 2 to 512MB to avoid Skyrim crashing on startup.

 

You can read more about the potential issues with ExpandSystemMemoryX64=true in the Memory Blocks Log by Sheson thread, maybe starting with my post explaining how Sheson's Memory Blocks fix works. I'd also recommend reading through the Common CTDs, Freezes, ILS and memory issues thread as well.

 

Just note that at least one person has reported being able to set DefaultHeapInitialAllocMB= to more than 768 with ScrapHeapSizeMB=256 in SKSE.ini and did not see Skyrim crash, even though ExpandSystemMemoryX64 was set to true in enblocal.ini

 

Anyhow, if you are seeing Skyrim crash at startup, and have set DefaultHeapInitialAllocMB= to more than 768 with ScrapHeapSizeMB=256 in SKSE.ini, I would recommend setting ExpandSystemMemoryX64 to false.

Link to comment
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
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.