[SOLVED] Elder Scrolls Online not working properly

So this is what happens, if I try to launch ESO directly from Lutris, it then opens Steam, the ESO launcher, and when I click Play, I get the “DirectX version not supported.” error.
But if I try to run the Steam runner from Lutris, and then open ESO, it will launch, show me all the EULAs that I have to accept, ask for me to adjust the brightness, log in and then load forever right before the character selection screen. Once it managed to crash and open ESOs native error report tool.

I am running it with wine-staging3.12-x86_64 using DXVK version 0.52. My NVidia driver is currently nvidia-384, which I assume is not the proprietary driver since I downloaded it thru the app center. OS is Elementary OS 0.4.1. I have installed many wine dependencies and vulkan.

Hardware specs are AMD FX-6300 with a NVidia GeForce GT 1030 2gb GDDR5.

Being honest, I don’t really understand much about wine, lutris or dxvk. I thought that maybe getting nvidia drivers from their website would help, as well as using latest DXVK, but I never tried installing the proprietary nvidia drivers on Elementary OS, and I have heard it is quite possible to mess up there, so I have no idea of where to go from here.

Let me know if I forgot to mention anything important, and thanks in advance for any help. I’d really appreciate not having to use windows anymore.

If the Driver is from NVidia, it is proprietary. The open source non-proprietary variation is called nouveau.

From a first glance, I’m not sure DXVK 0.52 and nvidia 384 are compatible. The earliest I remember from DXVK were versions near 390.

Since you use a GT 1050, you’re probably fine with the newest 396.xx.

I’m completely unfamiliar with Elementary OS, but you should be able to find repositories with these new NVidia drivers for your system and install them.

I don’t recommend installing them directly from the NVidia website, because I had negative experiences with their interface and positive experiences with my OS’s driver manager and repositories.

About the problem itself… What I can think about is that your wineSteam, when you right click>configure has a certain set of tools enabled (e.g.: dxvk or not, wine 12 or different) and you game has another variation of settings (maybe dxvk 0.6, wine 11 staging, whatever). Please confirm this by right clicking ESO on Wine and clicking “configure” (different from right clicking “wineSteam”!).

Thanks for the quick answer. I managed to get in-game by running WineSteam but it was a total mess, so it probably was not running with DXVK (ground textures were horrible, many things missing).

I will try fetching the 396.xx drivers somewhere and check individual configurations for ESO directly.

Should have proof read my original post tho, I do not have a GT 1050, I have a GT 1030 instead (but 396.xx should work nonetheless).

There’s an easy way to know if you’re running DXVK: put the environment variable DXVK_HUD equal to 1 in System Options tab (make sure it’s setup. Some people type the number ‘1’ and press save. You gotta press enter and THEN click save)

If you’re running with DXVK, you should have data about your graphics drivers and FPS on the top left of the screen. To disable this after troubleshooting, turn the variable back to 0 in the options.

Ok, I deleted my last post, because I managed to get it working.
I just followed the instructions in this video.


I could confirm it was running with DXVK, tho it crashed while I was changing some settings around.
Will come back and edit this post in case it is working and that crash was just because of the settings change.

In case anyone else stumbles across this error, try checking the following:

  • Drivers are up to date (version 390.xx + for nvidia cards, 396.xx recommended)
  • Wine dependencies are all installed properly (https://www.gloriouseggroll.tv/how-to-get-out-of-wine-dependency-hell/ in case you need help with that)
  • Vulkan is properly installed
  • DXVK is properly set up in Lutris’ configurations for the game (which is different to WineSteam’s configurations)
  • You properly set up dxgi.dll and d3d11.dll as shown on the video above.

If you get the infinite loading error by the way, just go on lutris, right click Elder Scrolls Online, click “run EXE inside Wine prefix”, look for System32 (for that particular wine prefix), and run control.exe. Go to Internet Settings, Connections tab, check “Use a Proxy server”, click Apply, uncheck “Use a proxy server”, click apply and close. Do the same for control.exe under Syswow64 folder (both folders are located at /drive_c/Windows).

I will check later if the crashing issue persists, I haven’t got any more time right now, but I will drop by with the results.

EDIT: Well, it froze completely after loading for 1 or 2 minutes, prompting me to restart my computer. I have no idea of what to do now. I was thinking of running it on a terminal but, it literally froze my entire system, and at this point I’m starting to think this particular issue is due to my hardware being rather weak for running such game on linux. But maybe I’m wrong, as I said, I’ve got no clue right now.

If anyone knows how to inspect this issue, or even have any idea on how to solve it outright, let me know, I’ll try it first thing tomorrow morning.

Great to know your advances.

I wouldn’t blame your specs at the moment, because you meet all the minimum requirements.

The only thing I didn’t understand was the dxgi.dll and d3d11.dll. When you enable DXVK on Lutris, what it does it put DXVK’s dxgi and d3d11 into your game’s WINEPREFIX. It also automatically sets dxgi and d3d11 to “native” (as the video probably showed). That’s why people are always recommending Lutris, it takes away the need of doing such jobs manually.

I re-checked the most recent installers for Lutris and they seem updated. Although, the standalone version has a lot more dependencies installed than the Steam version.

If I were to tackle this problem, I’d do the following:

  • Test the current installation and see if the freezing persists.
  • Try “Run in single core mode” on Lutris to see if it’s a multithread problem
  • Check my environment variables with the ones from the install scripts
  • Check for an ESO install video on Lutris (wine 3.5 is rather “old”)
  • Try installing the game in a completely different machine just to check if it runs (I installed Warframe in a really old, bad machine, but couldn’t install in my updated one once)

Then, if all these “on-the-go” solutions failed I would:

  • Install the standalone script, test
  • Install the Steam script, test
  • Completely remove wineSteam and install from scratch (this can be done by simply deleting Lutris’ wineprefix)

My last resort would be:

  • Creating my OWN wineprefix and installing everything the standalone/steam guide suggests as dependencies or following a working video

p.s.: REALLY try to have the recommended nvidia driver to run DXVK. I’ve solved a lot of issues by just having the person in question update their drivers to the ones mentioned in DXVK

I tried playing it again and the game does load after a while, but it then freezes in-game (I’m pretty sure my character is dead somewhere right now). Later attempts froze during loading, even with wine 3.13 staging and DXVK 0.63 (same dxvk version that is used in the standalone installer).

I am running driver 396.45 as recommended. I checked the standalone install script, and tried installing anything that wasn’t being installed by default with the steam script, with no luck. I couldn’t find “Run in single core mode”, nor could I find a up to date install video. I can’t try installing on a different machine, since the only other one I have access to is a 2014 Mac Mini that won’t even run the native mac client (nor the windows client under bootcamp).

I can’t really try installing the standalone script, as I would be stuck on the login screen, since my ESO account requires Steam to log. I will try a full reinstall later, maybe what is causing issues is the fact that I didn’t install ESO, I just copy/pasted my install folder (which I copied to my external hard drive two days ago while I was still on windows).

I don’t know how this works, but I was thinking of creating a Lutris script for the Steam version, but adding all the lines that are not present for the existing script, but I have no idea on how to do this. Come to think about it, I might as well just create a new wineprefix as you said.

I realize how big the game is, thus justifying your copy/paste method, but it’s one of those cases where you really have to try installing it from scratch…

The “run in single core mode” is found in

right click>configure>system options>tick “show advanced options”> scroll to “restric to single core”

The game may run REALLY badly, but it’s just a freezing/hanging test.

OK so I did a completely new install of both the WineSteam prefix and the game, and upon my first attempt to log in I got DirectX error again.

So I went and copied d3d11 and dxgi DLLs again, set them to native, and also set d3dcompiler_47 to native under winecfg (as is done on the standalone installer). The game loaded into the character selection screen just fine, then it loaded into the game. It quickly dropped to decimal FPS rates (it pretty much froze), but I waited for like a minute tops and it started running more or less as it should.

The only issue I have right now is that the game is stuttering every 10~15 seconds. I wouldn’t say it is totally unplayable but that could soon become an issue. I’ll try setting the CPU to performance mode in terminal (GPU is already set to performance in X Server Settings) and see if that bears any effect and edit this post with the results.

EDIT: No luck there, that just sort of made things worse.
Reading this, I guess I just have to wait for a while for it to cache all shaders to reduce stuttering.

OK, good to know you got things going.

It’s good that you got the d3dcompiler thing form the standalone installer, but it also runs 1 winetrick called vcrun10. This can be done by right-clicking your game and pressing Winetricks. Then, on the new opened window, proceed with Default Wineprefix>Install windows component>scroll down to vcrun10.

Please note that if the game IS currently running with no error, this may be unnecessary, but this ALSO explains the d3d11 and dxgi errors. vcrun10 has those DLLs, if I’m not mistaken.

You may want to try using wine-esync to make your game run smoother.

It’s not guaranteed that it will work, but it’s worth trying. If you exclude the WINEESYNC environment variable, it should work just as it’s working right now.

It did fix some issues I had with texture/shader loading/caching. The following environment variables seem to also help with shaders/stuttering

__GL_SHADER_DISK_CACHE 1
__GL_SHADER_DISK_CACHE_PATH /path/to/your/games/prefix
__GL_THREADED_OPTIMIZATIONS 1
mesa_glthread true

I’ve also seen gamers resort to dx9 versions of games to reduce stuttering, when available. They should work worse than DXVK, but more fluid. I’m almos sure you don’t have that option.

So about the vcrun10 deal, when I downloaded the game thru steam and ran the installer, it installed that already. When I copy pasted it didn’t, so that’s probably the reason.

Sadly support for the dx9 version of ESO was terminated a couple of years ago. I actually heard that version used to work pretty much out of the box with wine (kinda like World of Warcraft) and run pretty great.

I’ll try using wine-esync later on, but just a quick question, will I have to re-add all DLL overrides and such for that? Just to know so I can properly A-B test both versions.

Usually, mandatory DLL overrides are automatically added by winetricks. Changing your wine runner (staging 3.12 to esync 3.13, for example) will not mess your Wine Configuration (winecfg).

If you feel you lack overrides, add them manually. I usually don’t bother manually adding d3d11 or dxgi because simply enabling DXVK on Lutris does that job.

Well, with esync it won’t load at all. Get’s to launcher but I can click play a million times and nothing happens.

I guess we can consider this issue solved, as the stuttering might just be either thanks to my graphics card being somewhat weak or my low amount of ram, but most likely just due to the nature of the way the NVidia driver stores shaders.

I don’t know for sure, but could it be related to swap? Maybe it’s trying to write data to swap instead of ram under load and causing stuttering thanks to my incredibly slow HDD.

EDIT: Well, after playing it for a while the stuttering did stop, for the most part, but it very rarely happens now. I get mostly FPS drops now, but nothing major. Haven’t tested Cyrodiil PvP yet, but I guess I already know what to expect there lol.

Anyways, it was solved. Thanks for your help @dan1lo_bc, I would definitely not managed to get anywhere otherwise.

Great to know, @lukasakerlund. Please add the [SOLVED] tag to this thread’s title for cleanliness.

Did you do the extra steps described for wine-esync in that link (https://github.com/lutris/lutris/wiki/How-to:-Esync)? I’m asking just to confirm. I tried using it to load Magic The Gathering: Arena, and it simply doesn’t work. The game has its own architecture (etc etc) and it loads way too many files and breaks esync.

Other games, like the reported GTA V, have a way smoother experience under esync.

If you’re afraid you’re using your swap file a lot, check your memory usage ingame. Stay in some idle area and open your System Monitor.

You can better manage the way your system uses memory/swap by defining its “swappiness” variable. Here’s an example of how to change it. Please read and adapt to your system, if you feel like it. For the reference, I’m using 10% swappiness right now. My system starting loading stuff to swap file when I’m about to reach my 8GB limit, which rarely happens.

Cheers! Don’t waste more time on tinkering and tweaking, go have some fun :slight_smile:!

Hi, I am following along with similar problems. I though this is worth reviving to add a quick note:

If you want to experiment with different wine installs (even within Lutris), the real pain is the download time. It turns out, ESO has 2 major dirs: depot and vo_en, these are the resources the installed program uses, which is itself not that big (around 150MB).

So if you are stick, trying out installs, do yourself a favour, and move these dirs somewhere out of any wineprefix tree, then link these 2 dirs. That way you can easily have a couple of wineprefixes lying around, with differnt configs that you have already tried.

Like this:

mkdir eso_download

mkdir eso_download/depot
mkdir eso_download/vo_en

mv [wineprefix]/[path_to_game_files]/depot/* eso_download/depot
mv [wineprefix]/[path_to_game_files]/vo_en/* eso_download/vo_en

cd [wineprefix]/[path_to_game_files]
# you don't want to delete the downloaded files accidentally!!!
# check if the dirs are empty!!!
ls *
rm -r depot vo_en

ln -s [path_backwards]/eso_download/depot depot
ln -s [path_backwards]/eso_download/vo_en vo_en

At this point you might want to check, if the game still “works” - as far as it worked before.

After this, you can either copy your wineprefix, the soft links will be copied as soft links:
cp -r [wineprefix] try_new_settings_dir

Fire up this new wineprefix, to make sure there is no problem, then try a new setting.

OR

You can start a brand new, clean download. When the launcher gets to actually downloading the files, pause it, shut it down, find the depot and vo_en dirs in the new install, remove them, link the downloaded stuff in their place, and there you have clean install - clean, as long as wine config, dxvk, etc goes.