Nvidia’s GeForce blog is good for lots of things. I’m sure you’ve glanced over it while updating your drivers, but it turns out they also make some rather useful guides to tweak your game performance.
That being said, they’ve just released one for Skyrim!!
Here’s a part of the “Advanced Tweaking” section from the comprehensive 20 page guide:
For Skyrim, Bethesda has created the Creation Engine, a new, advanced engine featuring a real-time shadowing system and a number of other technological advancements. Fortunately, the game’s files and configuration options are easily accessible, allowing us to push the Creation Engine well beyond its limits through four different avenues:
- By adding or altering variables in the initialization (.ini) files.
- By using console commands.
- Through the use of user-made game modifications (Mods).
- Through alterations made to the graphics driver settings.
We’ll examine all of these methods in detail on the following pages. Before proceeding with any advanced tweaking however, you must take precautions to prevent losing your original settings and saved games. The easiest way is to make a backup copy of the entire \My Documents\My Games\Skyrim directory and store it somewhere safe.
Skyrim’s engine uses .ini files to store various settings, which are then read and implemented at startup. These plain text .ini files can be edited using any text editor such as Windows Notepad. There are a range of these .ini files under the game’s main \Program Files (x86)\Steam\steamapps\common\skyrim directory, however those are simply templates and none of them should be edited.
The .ini files which you should edit are found under the \My Documents\My Games\Skyrim directory. These files are Skyrim.ini and SkyrimPrefs.ini and the relevant file to be edited is noted in each tweak below. Importantly, if you mess up these files and don’t have a backup, or if you suspect that your adjustments to them are the cause of any problems, you can delete them and the next time Skyrim starts up it will recreate them with default settings.
Altering the in-game settings using the Skyrim Launcher will change or reset a range of variables in the .ini files, so it is best to first adjust all of your in-game settings to a level you’re reasonably comfortable with before moving on to doing some fine-tuning with .ini tweaking. You may also wish to separately note down any .ini tweaks you make, as future official patches are likely to alter or reset the .ini files, and you should never copy an .ini file or large portions of it from an older version onto the new one.
The tweaks listed here are not prescribed “fixes”. Advanced tweaking requires experimentation. Some general guidance is provided, but ultimately it comes down to your particular tastes and your system’s capabilities as to which tweaks you implement, and what values you use for them. Most importantly, do not simply copy anyone else’s .ini file contents. They are typically filled with non-functional or undesirable changes which will not suit your particular tastes or may cause problems. Every tweak requires that you understand the tradeoffs and changes that are involved, and that you test them personally and decide what is acceptable on your system.
Note: variables which can be fully altered using the in-game settings, and those which have no discernible performance or visual impact are not covered.
uGridsToLoad=5 – This variable does not exist and need to be added to bottom of the [General] section of the Skyrim.ini file to be implemented. It controls the radius around the character within which the engine loads up the most detailed objects, characters and terrain. It can have a substantial impact on both image quality and performance. Any value assigned to this variable needs to be in odd increments, e.g. 3, 5, 7, 9, 11. The screenshot comparisons above demonstrate the way in which there is progressively higher detail in the distance as the value of this variable is raised (a better example showing uGridsToLoad=7, the most stable value, can be seen here).
While altering this variable is tempting given the image quality improvement it provides, you should experiment with any uGridsToLoad value in various areas, particularly those where you usually experience the lowest FPS. The default of 5 is already a good compromise of performance and image quality, but if struggling for FPS, you can drop it to a lower value such as 3, though Bethesda strongly advises against this as it may lead to game instability.
Importantly: Aside from lowering performance and causing potential instability due to the greatly increased resource usage when raising uGridsToLoad, if you save a game after you have altered this value, the new value will be incorporated into your saved game. This is worth noting because the game only allows you to load a saved game which has an equal or lower uGridsToLoad value than your current value; you will not be able to open a saved game with a higher uGridsToLoad value. This means if you lower your uGridsToLoad value again, you won’t be able to load up the saves which used the higher value. So you should extensively test any change to your uGridsToLoad before committing to saving the game. If you need to revert a change in uGridsToload in an existing save game follow the steps below:
- Backup SkyrimPrefs.ini, Skyrim.ini and your Skyrim ‘Saves’ folder.
- Load your last save game.
- Press tilde on your keyboard, most commonly placed directly to the left of ‘1.’ If it is elsewhere, the keyboard symbol should be ` or ~.
- In the now-visible in-game console type setini “ugridstoload:general” 5
- Hit Return on your keyboard.
- Type saveini
- Hit Return on your keyboard.
- Type refreshini
- Hit Return on your keyboard.
- Close the console using tilde.
- Create a new save game.
- Exit Skyrim.
- Delete Skyrim.ini in My Documents\My Games\Skyrim.
- Reload the Skyrim configuration tool.
- Close the tool.
- Re-tweak Skyrim.ini if necessary (and SkyrimPrefs.ini if it has since been modified).
- Reload Skyrim and your most recent save.
- Enjoy the game.
uExterior Cell Buffer=36 – This variable controls the number of world cells (controlled by the uGridsToLoad setting) that are buffered to RAM to provide smoother transitions and improve stability. The general rule for the optimal value to assign to this variable is to take your current uGridsToLoad value, add one to it, then multiply it by itself. For example, if you set a uGridsToLoad value of 7, change uExterior Cell Buffer to 64.
iPresentInterval=0 – A form of Vertical Synchronization (VSync) is enabled by default in Skyrim and cannot be disabled in the in-game settings. If this variable is added to the bottom of the [Display] section of Skyrim.ini and set to 0, it will forcibly disable VSync. Disabling VSync reduces/eliminates mouse lag and removes the cap on your FPS, and can also improve overall performance. However disabling VSync also has several potentially negative impacts: you may see screen “tearing” which is harmless but may be annoying; in areas where you get very high framerates, such as indoors, the vertical (up/down) axis of your mouse will become much more sensitive than the horizontal axis; game world physics and timing may also accelerate or glitch, especially in areas where you get high FPS.
The two main alternatives for VSync in Skyrim are:
- Leave VSync enabled in Skyrim (i.e. the default), and enable Triple Buffering instead using the D3DOverrider utility which comes with the free RivaTuner software. This will improve performance and can reduce mouse lag without resulting in other negative effects. Furthermore, because the FPS cap from VSync remains in place, your vertical mouse axis will not become incredibly sensitive, though it will still become sluggish at low FPS. The only issue is that Triple Buffering uses more Video RAM which may cause problems on some systems, and it may not reduce mouse lag to the same degree as simply disabling VSync. To counter this, check the other mouse-related variables in this section.
- Disable VSync and use a FPS Limiter Mod to maintain any FPS cap you wish, though 60 or 30 FPS is recommended. This will prevent extreme vertical mouse sensitivity and physics issues, and will remove mouse lag, but there may still be some tearing.
Note that iPresentInterval can also be given a value of 2 to implement VSync with a reduced FPS cap (typically 30 FPS instead of 60 FPS), but this increases mouse lag, does not improve performance, and also results in extremely long load times, so it should not be used.
You may notice that several prominent memory and caching tweaks have not been included in this guide, such as those sourced from this Memory Limit Increase mod, and those found in guides for previous Bethesda games, e.g. the uInterior Cell Buffer and iPreloadSizeLimit and various threading variables. In experimenting with these in Skyrim I didn’t find them to have any practical impact on the actual performance, resource usage or smoothness on my system. At the same time, I can’t conclusively disprove their effectiveness across all systems. On balance I believe that altering them is unnecessary.
Only a change like altering the Large Address Aware (LAA) flag on Skyrim’s main TESV.exe file can have any real impact on improving Skyrim’s resource usage. This LAA change allows Skyrim to potentially use more than the 2GB limit imposed on 32-bit executables, but it only recommended if you have 4GB or more of system RAM. Any patch which directly modifies the game’s executable is not allowed by Steam, so you need to use something like this 4GB Skyrim LAA mod instead. This should not be treated as a cureall for instability issues, but it can help if you’re using a range of resource-intensive mods or .ini changes in Skyrim.
Yep, 20 pages of awesome nonsense just like this for you to browse through. Even a hardcore PC gamer like me can benefit from a guide like this. You can be sure I’ll be giving it a good look over.
Read the entire guide HERE.
For more Nvidia game tweaking guides go HERE.