Triple-buffered V-sync ensures a tear-free experience, but the game does not offer native support for this feature. Moreover, installing ReShade can break the tools that allow you to force it... this guide will explain how to have both installed at once.
Vertical synchronization (V-Sync) is a feature designed to synchronize your monitor's refresh rate to the rate of which your graphics card renders and displays a picture. There are three main synchronization methods, double-buffered, triple-buffered, and adaptive-rate, supported by some newer gaming-grade monitors.
Using traditional double-buffered V-Sync, games must wait until the next vertical refresh before they can start rendering the next frame, which will occur at the vertical refresh rate, typically, around sixty times per second, or 60 Hz.
The drawback of using double-buffering is that if your system skips even a single frame and falls out of perfect timing, for any reason, the game's and the screen's refreshing rate will mismatch and you will experience stuttering - and if you disable this limit altogether, you will get a particularly annoying artifact called tearing.
Some newer monitors have adaptive refresh rate support (eg. NVIDIA G-Sync or AMD FreeSync), but often, many displays and TVs, including very high end models, do not support such a feature.
The solution, when G-Sync or FreeSync is not available, is to enable triple buffering. In this mode, the game renders an additional frame in what is called a "back buffer" as it waits for the next frame to be displayed. This results in a smoother, tear-free experience; although possibly at the cost of a slight increase in video memory requirements and input lag at low frame rates.
The Long Dark is a pesky game, however. It does not offer any native support for triple buffered V-Sync, and also has a very bad habit of stuttering plenty under a few system configurations, as well as halving the framerate unnecessarily once your refresh rate falls too far from V-Sync range.. and to make things worse, the external applications which allow you to force this will normally break graphics enhancement modifications such as ReShade or ENBSeries, which may be desired to enhance the graphics, brightness, dynamic range, color and sharpen the graphics.
This guide will instruct you on how to get both working at once for the best experience possible.
- Direct3D Overrider (D3DOverrider), a component of the RivaTuner application created by the same developer responsible for the famous overclocking and system monitoring tool MSI Afterburner. It can be downloaded at the PC Gaming Wiki Community here.
- ReShade - it can be downloaded at the official ReShade website here.
Setting Up ReShade
Install ReShade as you would normally do, by running ReShade's setup program.
Select the game's install folder (varies with system configuration, but is usually located under Steam's own directory) and choose the rendering API in accordance to what you are currently using. The Long Dark currently defaults to DirectX 11, so tick the "Direct3D 10+" checkbox in the setup window.
It will prompt you to download a standard collection of shaders from ReShade's repository. Allow it to do so and select the effect files you may desire:
Apply the effects and close this window.
Setting Up D3DOverrider
Download the package and extract it somewhere convenient, you will need to run D3DOverrider every time you play the game.
Upon opening it, you will be greeted with the following window:
Click on the plus sign, type in "tld", and press Open (or hit the Enter key), there is no need to select the actual path as the program will attach to any process called tld.exe - which is the game's executable.
Turn on both "Force Triple-Buffering" and "Force VSync" options in the application, and set the application detection level to "Medium".
Making Them Work Together
While the setup process for these individual applications is now complete, attempting to load the game with ReShade installed and D3DOverrider open will result in a crash.
It can be solved by following these steps:
- Close the D3DOverrider application.
- Navigate to The Long Dark's install folder.
- Copy the dxgi.dll placed by ReShade in the game's folder (next to tld.exe) in the same folder you extracted D3DOverrider, next to the D3DOverrider.exe and D3DOverriderWrapper.exe executables.
It should look like this:
In the D3DOverrider directory, open the "Profiles" subdirectory and open the extensionless file called "Config" with Notepad or your text editor of choice.
Delete the [FnOffsetCache] section and save the file.
Run D3DOverrider again.
The game should now initialize correctly and you will be greeted by ReShade's in-game configuration menu. The settings here are to be tweaked to your taste.
To prevent framerate halving issues, open Options > Display and set Vertical Sync to Off.
This procedure will be compatible with any 32-bit game on DirectX 9, 10, 11 and OpenGL graphics APIs. It is not compatible with 64-bit games due to the way D3DOverrider was programmed, so if you encounter similar issues on a 64-bit game; this guide won't be of much help.
As far as I am aware, no equivalent was developed that is compatible with 64-bit executables, so in those you should use a 32-bit executable whenever available - if not possible, sorry. You'll have to dealing with the tearing... and i'd be appreciative of it if you found a workaround.
To Hinterland, I humbly request that native support for triple buffering is added in a future update, as D3DOverrider will no longer function if the game is ever upgraded to a 64-bit build of Unity as this is exclusively a 32-bit application... Please guys, we need lots of performance optimizations and this feature really bad!