SkyrimLE:ENBLocal INI Reference/Memory

From Step Mods | Change The Game

[MEMORY][edit | edit source]

ENB now has memory management features added that can significantly reduce CTDs caused by hitting Skyrim's memory limit (~3.1GB). These features are referred to as, ENBoost. These parameters will need to be changed depending on the hardware within individual systems. ENBoost features depend heavily on these values to work correctly. Setting them incorrectly could result in users experiencing additional issues in-game. When running Skyrim with ENB enabled it is highly recommended to close any unnecessary programs running in the background to free up system for ENBoost use.

ExpandSystemMemoryX64[edit | edit source]

Template:Warning Small


When set to true, this parameter changes some of Skyrim's memory allocation code to cache data at the 'top' of Skyrim's memory space (Windows default caches to bottom of memory space). According to Boris, this can reduce memory fragmentation and make better use of Skyrim's available memory, especially when running on 64-bit Windows; Vista or newer. Note:' for this parameter to work, ReduceSystemMemoryUsage must be set to true and EnableUnsafeMemoryHacks must be set to false (see below).

ExpandSystemMemoryX64=(false, true)

Please read these posts before posting support questions in the forums about this parameter! Don't be lazy!
More of an explanation by Boris can be found here and by keithinhanoi here and here.


ReduceSystemMemoryUsage[edit | edit source]

This parameter will enable the ENBoost features to dramatically reduce CTDs and other issues caused from reaching Skyrim's memory limit. It does this by launching the enbhost.exe process to handle dynamic memory allocations. It is highly recommended to enable and keep this feature enabled! For this feature to work properly, users should have a minimum of 4GB system RAM. ENBoost is able to initialize multiple instances of the enbhost process, each able to use up to 4GB of system RAM up to a maximum of 128GB (capped by the kilobyte value set in VideoMemorySizeMb below. Set to true if ExpandSystemMemoryX64 is enabled (see above).

ReduceSystemMemoryUsage=(false, true)


DisableDriverMemoryManager[edit | edit source]

This was mainly implemented as a fix for AMD video card users; however, it can also be useful for others. The parameter forces the ENBSeries driver libraries to manage video memory resources for cached textures (rather than the video drivers) and will ignore more of the errors reported by the video drivers. When enabled this parameter can cause lower than optimal performance and/or long pauses. If experiencing CTDs even while ENBoost features are enabled, users can try enabling this parameter to see if it resolves (helps to confirm video driver issues); otherwise, it is best to leave it disabled (false).

DisableDriverMemoryManager=(false, true)


DisablePreloadToVRAM[edit | edit source]

Routinely running Skyrim with this enabled is not recommended. When enabled this parameter can give faster cell-load times as geometry/textures are not loaded into video memory until they are visible. This may cause stuttering since more data must be dynamically loaded into memory during gameplay as the PC looks and moves around. Enabling this parameter could potentially help load a save game which fails to load otherwise. If this works, users are encouraged to go to a small interior, save the game, and then disable this again before trying to load the problem savegame. If experiencing extended cell load times, before enabling this feature, it is recommended to first try using the "free VRAM" key (see [INPUT] section) to clean video memory before entering a new location or fast traveling.

DisablePreloadToVRAM=(false, true)


EnableUnsafeMemoryHacks[edit | edit source]

Enabling this parameter is generally not safe. This is a workaround for users experiencing large amount of stuttering, typically on systems with large amount of VRAM (4GB+). When enabled, it does not use memory reallocation, compression, or enbhost.exe and will only work when ReduceSystemMemoryUsage is also enabled. A known bug is that Alt+tab will not work in fullscreen when this is enabled. Set to false if ExpandSystemMemoryX64 is enabled (see above).

EnableUnsafeMemoryHacks=(false, true)


ReservedMemorySizeMb[edit | edit source]

This parameter sets the size of a buffer used for swapping geometry and textures between VRAM and system memory. The buffer will be set in VRAM and this portion of VRAM will not be used for ENBoost's dynamic memory allocation; however, it will also be duplicated in the system memory used by TESV.exe as well. This means that increasing this parameter's value will result in equal increases in both VRAM and system RAM usage. The values here are measured in megabytes. For video cards with 1GB or more VRAM, start with 128 as a baseline. If stuttering persists, increase the value in increments of 128 ( 256, 384, 512, etc ) until the stuttering has ceased or is as minimal as possible with the lost value as possible. The maximum value that can be used is 1024, but be aware that whatever value is used is how much VRAM will be reserved for the swap space. This is the reason the lowest value possible without experiencing issues is recommended. Because of this parameter being system dependent, users will need to test different values to find the one which works best for their specific setup.

ReservedMemorySizeMb=(64, 128, 256, 384, 512, 640, 768, 896, 1024)


VideoMemorySizeMb[edit | edit source]

This sets the total memory that will be used for the ENBoost dynamic memory allocation. All available VRAM, except for the amount set with ReservedMemorySizeMb, will be used first, and if VideoMemorySizeMb is set to a value higher than total VRAM of the user's videocard, then ENBoost will use system RAM, if necessary, by running instances of enbhost.exe.

Download Boris's VRamSizeTest tool, run VRamSizeDX9.exe, and note the number it shows after "Video memory available." Then, if you are running Windows 7, subtract 170 from that number; if you are running Windows 8 or newer, instead subtract 350. Use the result as the variable here. (Example: If VRamSizeDX9.exe shows 4064, and you're running Windows 10, you should subtract 350 to get 3714.) For more information, please refer to this post.

VideoMemorySizeMb=(see above instructions)

EnableCompression[edit | edit source]

Enables/disables memory compression. It is enabled by default. Disabling memory compression can reduce stutter, but at the cost of more RAM usage. For this reason, it is generally only recommended to be disabled on systems with more than 2GB VRAM. Any system that is already nearing its VRAM limit should leave this parameter enabled or it could do more harm than good.

EnableCompression=(false, true)


AutodetectVideoMemorySize[edit | edit source]

If enabled, this feature will attempt to detect a system's shared video memory and automatically set the VideoMemorySizeMb parameter for a user. Any value placed in the VideoMemorySizeMb above will simply be ignored. This feature works for some users and for other users it'll give the wrong values which are usually too high. Users can try this feature; however, disabling it and setting the VideoMemorySizeMb parameter manually to fine tune the ENBoost settings is currently the recommended method.

AutodetectVideoMemorySize=(false, true)