SkyrimLE:ENBLocal INI Reference/Memory: Difference between revisions

From Step Mods | Change The Game
(→‎VideoMemorySizeMb: General revision in an attempt to make consistent with instructions shown on ENBoost.)
Line 31: Line 31:


====VideoMemorySizeMb====
====VideoMemorySizeMb====
This sets the total memory that will be used for the ENBoost dynamic memory allocation. All available VRAM, except for the amount set with <code>ReservedMemorySizeMb</code>, will be used first, and if <code>VideoMemorySizeMb</code> 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''. Users with 32-bit systems should set this parameter's value equal to the total VRAM of their videocard; this is the most stable value. However, users with 32-bit or 64-bit systems and '''''less than 8GB of system RAM''''' should use the formula: ''{{fc|white|(VRAM + System RAM) - 2048}}''. Users with 64-bit systems with '''''equal to or greater than 8Gb of system RAM''''' should use the formula: ''{{fc|white|(Total Available Video/Graphics Memory - [170 (for win7) or 350 (for win8/10))}}''. When calculating the value, it is not necessary to subtract the value set for <code>ReservedMemorySizeMb</code>, because ENBoost already takes it into consideration. If <code>AutodetectVideoMemorySize</code> is enabled below, this parameter is ignored. All values are in megabytes.
This sets the total memory that will be used for the ENBoost dynamic memory allocation. All available VRAM, except for the amount set with <code>ReservedMemorySizeMb</code>, will be used first, and if <code>VideoMemorySizeMb</code> 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''. 32-bit systems, and 64-bit systems with '''&lt;8&nbsp;GB of system RAM,''' should set this equal to {{fc|#ddd|(''Dedicated Video Memory''&nbsp;+ ''System&nbsp;RAM'')&nbsp;&minus; 2048}}. 64-bit systems with '''''&ge;8&nbsp;GB of system RAM''''' should set this equal to {{fc|#ddd|(''Total Available Graphics Memory''&nbsp;&minus; [170 (for Win7) or 350 (for Win8+)])}}. When calculating the value, it is not necessary to subtract the value of <code>ReservedMemorySizeMb</code>, because ENBoost already takes it into consideration. If <code>AutodetectVideoMemorySize</code> is enabled below, this parameter is ignored. All values are in megabytes.
<pre>VideoMemorySizeMb=(1024, 2048, 4096...)</pre>
<pre>VideoMemorySizeMb=(1024, 2048, 4096...)</pre>


To find ''Total Available Graphics Memory'' in Windows 7 and 8:
To find ''Dedicated Video Memory'' and ''Total Available Graphics Memory'' in Windows 7 and 8:
# Open the ''Control Panel'' and make sure it's sorted by "Category".
# {{fc|#ddd|Right-click the Desktop}} and click {{fc|#ddd|[Adjust screen resolution]}}.
# Under ''Appearance and Personalization'', click ''Adjust screen resolution''.
# In the middle and right-hand side of the window, click the {{fc|#ddd|[Advanced settings]}} link.
# In the middle and right-hand side of the window, click the ''Advanced settings'' link.
# In the new window that opens, make sure the {{fc|#ddd|[Adapter]}} tab is the current tab.
# In the new window that opens, make sure the ''Adapter'' tab is the current tab.
# Under ''Adapter Information,'' ''Dedicated Video Memory'' and ''Total Available Graphics Memory'' are listed.
# Under ''Adapter Information'', look for ''Total Available Graphics Memory''.


====EnableCompression====
====EnableCompression====

Revision as of 21:08, June 22, 2015

[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

While the preceding warning does not apply to everyone under all circumstances (me for example, running DefaultHeapInitialAllocMB=768), credible testing here on STEP supports the notion that setting EnableUnsafeMemoryHacks=true can contribute to Skyrim CTD at startup when using sheson's memory patch. ~z929669 Ixian Insignia.png Talk 23:19, January 17, 2015 (EST)

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 greatly reduce memory fragmentation and make better use of Skyrim's available memory, especially when running on 64-bit Windows. Note:' for this parameter to work, ReduceSystemMemoryUsage must be set to true and EnableUnsafeMemoryHacks must be set to false (see below).

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 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. 32-bit systems, and 64-bit systems with <8 GB of system RAM, should set this equal to (Dedicated Video Memory + System RAM) − 2048. 64-bit systems with ≥8 GB of system RAM should set this equal to (Total Available Graphics Memory − [170 (for Win7) or 350 (for Win8+)]). When calculating the value, it is not necessary to subtract the value of ReservedMemorySizeMb, because ENBoost already takes it into consideration. If AutodetectVideoMemorySize is enabled below, this parameter is ignored. All values are in megabytes.

VideoMemorySizeMb=(1024, 2048, 4096...)

To find Dedicated Video Memory and Total Available Graphics Memory in Windows 7 and 8:

  1. Right-click the Desktop and click [Adjust screen resolution].
  2. In the middle and right-hand side of the window, click the [Advanced settings] link.
  3. In the new window that opens, make sure the [Adapter] tab is the current tab.
  4. Under Adapter Information, Dedicated Video Memory and Total Available Graphics Memory are listed.

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)