SkyrimLE:ENBLocal INI Reference/Memory

From Step Mods | Change The Game
< SkyrimLE:ENBLocal INI Reference
Revision as of 23:48, January 17, 2015 by Z929669 (talk | contribs) (Created page with "<div class="nonumtoc">{{TOC right}}</div> ==[MEMORY]== ENB now has memory management features added that can significantly reduce CTDs caused by hitting Skyrim's memory limit ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

[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]

When set to true, this parameter changes some of Skyrim's memory allocation code to write some cached data at the top of Skyrim's memory space, instead of the default write to the bottom of the memory space method used for almost all Windows programs. According to the author of ENBSeries, this can greatly reduce memory fragmentation and make better use of Skyrim's available memory, especially when running on 64-bit Windows. However, it has been found that this feature conflicts with the Sheson Memory Patch fix by causing Skyrim to crash if the memory patch fix is used to increase Skyrim's initial heap ("Block 1") allocation higher than 512MB. Therefore, if using the Sheson Memory Patch fix (either standalone or with SKSE), then it is recommended to set ExpandSystemMemoryX64 to false. Note: for this parameter to work, ReduceSystemMemoryUsage must be set to true and EnableUnsafeMemoryHacks must be set to false.

ExpandSystemMemoryX64=(false, true)

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 must have enough system RAM to handle Windows, Skyrim, and enbhost.exe plus any programs running in the background. ENBoost is able to start multiple instances of the enbhost.exe process, each able to use up to 4GB of system RAM; up to a maximum of 128GB. This limit of how much system RAM is used is based off the value set in VideoMemorySizeMb below.

ReduceSystemMemoryUsage=(false, true)

DisableDriverMemoryManager[edit | edit source]

This was mainly implemented as a fix for AMD video card users; however, it can also be helpful to other users as well. The parameter forces the ENBSeries driver libraries to manage video memory resources for cached textures and will ignore more errors than the default video drivers would. When enabled the can cause lower than optimal performance and/or long pauses. If experiencing CTDs even while ENBoost features are enabled, users can also try enabling this parameter to help resolve some issues caused by video drivers; otherwise, it is best to leave it disabled.

DisableDriverMemoryManager=(false, true)

DisablePreloadToVRAM[edit | edit source]

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 player looks and moves around the environment. 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, such as Breezehome or an inn, save the game, and then disable this again and try to load the save. Running Skyrim with this enabled is not recommended. If experiencing extended cell load times, before enabling this feature, it is recommended to first try using the "free VRAM" key (needs to be set later in this file) 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.

EnableUnsafeMemoryHacks=(false, true)

ReservedMemorySizeMb[edit | edit source]

This parameter sets a buffer size for swapping geometry and textures between VRAM and system memory. The buffer will be set in VRAM; 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. Users with 32-bit systems should set this parameter's value equal to the available VRAM; this is the most stable value. Users with 64-bit systems and at least 8GBs of system RAM, can use the formula: (VRAM + System RAM) - 2048. Users on a 64-bit system who have less than 8GB system RAM should simply set the value equal to the available VRAM. If AutodetectVideoMemorySize is enabled below, this parameter is ignored.

VideoMemorySizeMb=(512,1024,...6144)

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)