protonscr

[d3d9] - The Elder Scrolls® Online - Installer is blank when using DXVK 1.5.2 and newer.

dxvkclosed appid 306130d3d9
doitsujin/dxvk#2240 · opened 2021-08-12 by ZereoX · updated 2023-05-06 · 11 comments · github · game page · search this game
ZZereoX 2021-08-12 github

Description:

In The Elder Scrolls® Online (306130) the installer for the launcher (javaw.exe) is completely blank. Previously the installer assets would flicker enough for you to figure out how to proceed, but now it seems it always renders black (probably due to game update). This blocks the install flow unless the user specifically knows where to click. Based on a previous issue, I believe this is due to partial-presentation: https://github.com/doitsujin/dxvk/issues/1481

The previous behavior can be observed here: https://www.youtube.com/embed/UmaSjU4R_Lw?start=0&end=5

  • Issue is not present on WineD3D.
  • Issue occurs on both Nvidia and AMD GPUs.
  • Issue occurs on both Proton 6.3-5 on all major DXVK versions since 1.5.2, including master (a2330b89d228f7bdd6ba5f415051345634c3cb7c).
WineD3D DXVK 1.5.1 DXVK - main
WineD3D DXVK-1 5 1 DXVK-a2330b8

Please let me know if any additional information is required or if additional testing is needed.

Software information

The Elder Scrolls® Online (306130)

System information

OS: Ubuntu 20.04
GPU: Radeon RX 5700 XT / Nvidia GeForce GTX 1060
Driver: 21.2.0~kisak1~f / 470.57.02-0ubuntu0.20.04.1
Wine version: Proton 6.3-5
DXVK version: 1.5.2 and up (including main - a2330b89d228f7bdd6ba5f415051345634c3cb7c)

Apitrace file

Log files

d3d9.log:
javaw_d3d9.log

KK0bin maintainer 2021-08-12 github

Link: The installer is extracted at run-time by zosSteamStarter.exe so its not possible to setup for an APITrace. The title is free on Steam, but is unfortunately a massive download (108.4 GB on disk).

Just drop the apitrace d3d9.dll into the game/installer directory and it should create an apitrace.

ZZereoX 2021-08-13 github

Just drop the apitrace d3d9.dll into the game/installer directory and it should create an apitrace.

@K0bin The installer is in a random location every time the title is launched, but I was able to grab the commandline from WMIC (WMIC path win32_process get Caption,Processid,Commandline) and manually re-run the install through APITrace.

apitrace.exe trace --d3d9 "C:\Users\jason\AppData\Local\Temp\I1628854820\Windows\resource\jre\bin\javaw.exe" -Xms16777216 -Xmx50331648 -Djava.specification.version=1.6 -Xmx512m -Dlax.locales=TRUE -Dlax.debug.level=4 -Dlax.debug.all=true -classpath "C:\Users\jason\AppData\Local\Temp\I1628854820\InstallerData\IAClasses.zip;C:\Users\jason\AppData\Local\Temp\I1628854820\InstallerData\Execute.zip;C:\Users\jason\AppData\Local\Temp\I1628854820\Windows\InstallerData\Execute.zip;C:\Users\jason\AppData\Local\Temp\I1628854820\InstallerData\Resource1.zip;C:\Users\jason\AppData\Local\Temp\I1628854820\Windows\InstallerData\Resource1.zip;C:\Users\jason\AppData\Local\Temp\I1628854820\InstallerData;C:\Users\jason\AppData\Local\Temp\I1628854820\Windows\InstallerData;" com.zerog.lax.LAX "C:/Users/jason/AppData/Local/Temp/I1628854820/Windows/setup.lax" "C:/Users/jason/AppData/Local/Temp/lax251A.tmp" -D$USER_INSTALL_DIR$="D:\SteamLibrary\steamapps\common\Zenimax Online"

I confirm the trace plays back correctly and exhibits the issue if DXVK is used.

Link: https://drive.google.com/file/d/1uvHLN27sSfMirDjnxDgZv1GfmYOrwPic/view?usp=sharing

Bboludoz 2021-08-19 github

Same issue in windows 11 with medieval 2, With the indicated version 1.5.1 it is mitigated. Windows users also use DX9 for better performance.
Black screenshots and triangular vector problems persist in new versions (like artifacts).

KK0bin maintainer 2021-08-19 github

@boludoz
Please open a new issue for a different game.

DDadSchoorse 2021-08-20 github

@ZereoX can you try if d3d9.noExplicitFrontBuffer = True changes something?

ZZereoX 2021-08-20 github

@ZereoX can you try if d3d9.noExplicitFrontBuffer = True changes something?

Hi @DadSchoorse,
Unfortunately the same behaviour is observed with that option:

d3d9.noExplicitFrontBuffer
image
Nniobium93 2021-09-02 github

In case someone else is having the same issue, all you have to do is use these launch options:

PROTON_SET_GAME_DRIVE=1 PROTON_USE_WINED3D=1 %command%

(PROTON_SET_GAME_DRIVE is needed because otherwise the installer tries to write to Z: and complains that it can't)
Install the launcher, then remove the launch options and the game runs just fine with DXVK.
Also, enable the new multi-threaded renderer option in the game. It improves the performance massively!

BBlisto91 2022-06-05 github

Is this the installer downloaded through the website which creates a temp folder where javaw.exe is located? Tho i'm guessing it's the setup.exe in the temp folder that calls java.
d3d9.shaderModel = 1 fixes it but i'm unsure how to add a built in dxvk config to this.

ZZereoX 2022-06-05 github

Is this the installer downloaded through the website which creates a temp folder where javaw.exe is located? Tho i'm guessing it's the setup.exe in the temp folder that calls java. d3d9.shaderModel = 1 fixes it but i'm unsure how to add a built in dxvk config to this.

Last I checked this was being triggered by the Steam install of the game during First-Time Setup (not a standalone installer).

BBlisto91 2022-06-05 github

Ah oke.
I don't have the game so i searched online and saw it mentioned you could download the installer from their website when you have bought it and logged in.
Someone in their forum linked to the one i tried. Didn't find one with the same name on steamdb.

Nniobium93 2022-06-05 github

@Blisto91 that does sound like the same installer as what steam uses. I haven't played this in a while, but I do remember there being a javaw.exe in a temp folder. It all gets extracted at runtime. It's annoying because the temp folder in in a different path each time, so you can't just keep a dxvk.conf in there. Also all the installer executables use very generic names, so you can't really apply rules based on their names.

Proton versions

Launch options

Launch lines

Upstream links

DLLs