My solution to lag/stuttering, etc

Hello fellow D3ers

I see in alot of posts that people are having performance issues with this game. I was also having issues running this game. From constant odd stuttering issues(like a odd lag every few seconds) to grey screening on loading to CTD without any indication as to why to just general bad performance(missing sounds, input lag, bad FPS while in town). I haven’t been playing this game for long so I’m not sure if it’s normal but it definitely shouldn’t be.

I’m using an MSI GT722Qe Dominator Pro with 12GB DDR3 RAM, i7 4720HQ 2.6GHZ, GTX 980m 4GB. Game is installed on an internal SSD. I’m aware that it is old and not TOTL but it runs most things reasonably well so I figured Diablo 3 shouldn’t be an issue. Boy was I wrong.

After hours of trying multiple different things I finally found a solution that has worked for me. I am now getting an average of 60+ FPS with very little stuttering unless there is alot of stuff on screen. FPS in town is perfect, all sounds are present, no lag issues (once again as long as there isn’t too much crap on screen).

Here’s my workaround (It’s long but stay with me):

OS stuff

I read in an earlier thread that most of the issues have been related to FMOD. FMOD was throwing various errors and causing the system to lag/freeze/be choppy. I know I should have checked my own log to see if that was my issue, hindsight is 20/20 I guess. The poster stated that the problem was outdated MSVC++ files. They also provided a link to 2 updated MSVC++ files that he suspected were causing the FMOD problems. Sadly the links are now dead but I found a secondary solution that took a little bit more effort but works nonetheless

The 2 files in question are msvcp140.dll and vcruntime140.dll. Apparently diablo 3 is using a version from 2015 that isn’t playing well with modern FMOD

My solution was threefold:

  1. Search through my windows/sysWOW64 folder for the 2 files in question
  2. Verify that they were the latest files(2019 or higher).
    **to do this right click the file and choose properties, details. The section “Date modified” shows November 11 2020
  3. COPY them directly into the diablo3/x64 folder, overwriting the 2 files that were already there

I did these same steps using the 32bit DLL files as well just in case. I just found the 2 files in the system32 folder and copied them into the base diablo3 folder.

NVIDIA Settings
The Grey Screen problem

Sometimes issues like this can happen with my system when I play an older game. I have found that was the way the driver handles display scaling on my laptop is a little screwy. If I have it set to aspect ratio(which is my default) sometimes this issue will occur where FMVs will not play or sometimes the screen will not appear at all or just show a grey/black screen. I have read that the display scaling should be turned off for most games as the GPU will scale the display accordingly anyway and this was more of a way to control if the GPU or display itself was doing the scaling. I turned it off. It’s been 4 days and I haven’t had the grey screen lockup or full screen lockup. The grey screen still appears when I load the game but it doesn’t lock up and loads normally.

To turn off display scaling(on NVIDIA hardware) open the NVIDIA control panel, select Adjust desktop size and Position and click on No scaling

DIABLO 3 NVIDIA control panel specific settings
The settings in Manage 3d settings can have a huge effect on whether a game is playable or not. I have found a group of setting that works for me. No telling if they will work for you.

Turn off ambient occlusion
Set AA mode to app controlled
Set AA transparency to 4x super (personal preference)
Turn MFAA on (personal preference)
Set texture filtering to High quality (personal preference)
Turn ON VSYNC to ADAPTIVE(originally had it on fast)

IN GAME SETTINGS
There has been alot of debate on what works and what doesn’t and I’m just here to post what worked for me.

SET sound to 32. It was auto defaulting to 128 every time I loaded into the game for some reason but it seems to have stopped since I swapped DLL files.

Turn off any frame limiters. Max foreground and background fps as well as in game VSYNC. Since the driver is going to handle the VSYNC no need to turn it on in game or have any other frame limiter active since VSYNC will cap your framerate at your monitor refresh rate anyway.

I have all settings set to max with the exception of shadows(set to medium smooth).

EDIT:
I forgot to add a very crucial step.
Create a shortcut and add the -launch parameter. This will prevent battle.net from opening on start.

I get a buttery smooth 60 FPS with an occasional micro-stutter in town when I normally was getting anywhere between 20-40fps but never 60 consistently. Obviously less if there is more stuff on the screen.

Anyway thanks for taking the time to read this and I hope this can help someone out.

Well, thanks for the tips.

In my case, until yesterday (May 10th) the game was doing OK. Not perfect, but good playable.

Nevertheless, since today May 11th the game started to sttuter no matter what I change from video options in the game. I even uninstalled and reinstalled the game all over again, justo to find it’s still stuttering the same.

I don’t know what to do, need some help.

Since I have made this post I do have some updates.

Stuttering hasn’t been an issue for me(besides normal PC lag) since completing these above steps. I have been disconnected from blizzards servers a few times but it wasn’t due to the same issue

I have even checked my logs and no error regarding FMOD or anything else for that matter.

Two things I could suggest is to try and follow the first set of steps I posted regarding copying msvcp140.dll and vcruntime140.dll from your windows folder (either sysWOW64 for 64 bit or System32 for 32 bit depending on what version of the game you are running) directly into the diablo directory(x64 if using 64 bit) and create a shortcut and add the line -launch into the end of the target section. This will allow you to launch diablo 3 without running battle.net.

If the issue is due to out of date MSVC++ files then uninstalling and reinstalling the game will not fix the issue as it will just reinstall the out of date versions of the files as before. That is why I suggest looking for the updated files that should be in your windows directory, copying them and pasting the 2 files into the correct diablo folder.

Also disabling battle.net from launching on diablo 3 start is essential as the game will attempt to “repair” the files that you just replaced if you use the launcher, thereby negating what you just did.

Thank you so much for this! It solved my problem <3 :slight_smile: